Problem E


                           Problem E
                  Minimal pour out of vessels


We  can  use a set of vessels to fill a tank with a  precisely
stated  amount  of fluid. The problem is to  use  them  in  an
optimal  way  to  avoid too much labour  and  inadequacy.  For
simplicity we assume that we have a tank of capacity more than
10000  litres  and a set of vessels with precise  capacity  in
litres. We can use vessels to fill the tank (using tap to fill
a  vessel  first),  and we can also use vessels  to  empty  it
(using  sink  to empty a vessel next). We should minimize  the
number  of  the fill and pour away operations of the  tank  to
obtain the given amount of fluid inside.

Your  program has to read the capacity of each vessel (we will
have  no  more than 1000 vessels) and the amount of fluid  the
tank should be filled with.

The program should compute the minimal number of the fills and
pours  away  to obtain a given amount of fluid  inside  in  an
efficient manner.

Suggestion
Algorithm of exponential-time complexity will probably not  be
accepted, because it can exceed the execution time limit.

Input
*    the  input contains as many lines as problems  to  solve,
 plus one line with a single 0 (zero) to denote the end;
*    each problem line is a sequence of positive integers each
 not greater than 5000, describing the amount of fluid the tank
 should be filled with and the capacities of available vessels;
 0 (zero) denotes the end of the line.

Output
a  separate  line  for  each, set of  vessels  containing  the
minimal  number of add and pour away operations or the  string
"Impossible" in the case the solution does not exist.

EXAMPLE

Input
8  3  7  0
5  3  7  0
5000  2  4  12  11  34  0
17  2  4   8  0
0

Output
4
5
148
Impossible



Solution

                             Test

input

1  70  101  0
5000 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17
18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33
34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49
50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65
66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81
82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97
98   99  100 101  102  103  104  105  106  107  108  109   110
111   112   113  114  115  116  117  118  119  120   121   122
123   124   125  126  127  128  129  130  131  132   133   134
135   136   137  138  139  140  141  142  143  144   145   146
147  148  149  150 151  152  153  154  155  156  157  158  159
160   161   162  163  164  165  166  167  168  169   170   171
172   173   174  175  176  177  178  179  180  181   182   183
184   185   186  187  188  189  190  191  192  193   194   195
196  197  198  199  200 201  202  203  204  205  206  207  208
209   210   211  212  213  214  215  216  217  218   219   220
221   222   223  224  225  226  227  228  229  230   231   232
233   234   235  236  237  238  239  240  241  242   243   244
245  246  247  248  249  250 251  252  253  254  255  256  257
258   259   260  261  262  263  264  265  266  267   268   269
270   271   272  273  274  275  276  277  278  279   280   281
282   283   284  285  286  287  288  289  290  291   292   293
294  295  296  297  298  299  300 301  302  303  304  305  306
307   308   309  310  311  312  313  314  315  316   317   318
319   320   321  322  323  324  325  326  327  328   329   330
331   332   333  334  335  336  337  338  339  340   341   342
343  344  345  346  347  348  349  350 351  352  353  354  355
356   357   358  359  360  361  362  363  364  365   366   367
368   369   370  371  372  373  374  375  376  377   378   379
380   381   382  383  384  385  386  387  388  389   390   391
392  393  394  395  396  397  398  399  400 401  402  403  404
405   406   407  408  409  410  411  412  413  414   415   416
417   418   419  420  421  422  423  424  425  426   427   428
429   430   431  432  433  434  435  436  437  438   439   440
441   442   443  444  445  446  447  448  449  450   451   452
453   454   455  456  457  458  459  460  461  462   463   464
465   466   467  468  469  470  471  472  473  474   475   476
477   478   479  480  481  482  483  484  485  486   487   488
489   490   491  492  493  494  495  496  497  498   499   500
501   502   503  504  505  506  507  508  509  510   511   512
513   514   515  516  517  518  519  520  521  522   523   524
525   526   527  528  529  530  531  532  533  534   535   536
537   538   539  540  541  542  543  544  545  546   547   548
549   550   551  552  553  554  555  556  557  558   559   560
561   562   563  564  565  566  567  568  569  570   571   572
573   574   575  576  577  578  579  580  581  582   583   584
585   586   587  588  589  590  591  592  593  594   595   596
597   598   599  600  601  602  603  604  605  606   607   608
609   610   611  612  613  614  615  616  617  618   619   620
621   622   623  624  625  626  627  628  629  630   631   632
633   634   635  636  637  638  639  640  641  642   643   644
645   646   647  648  649  650  651  652  653  654   655   656
657   658   659  660  661  662  663  664  665  666   667   668
669   670   671  672  673  674  675  676  677  678   679   680
681   682   683  684  685  686  687  688  689  690   691   692
693   694   695  696  697  698  699  700  701  702   703   704
705   706   707  708  709  710  711  712  713  714   715   716
717   718   719  720  721  722  723  724  725  726   727   728
729   730   731  732  733  734  735  736  737  738   739   740
741   742   743  744  745  746  747  748  749  750   751   752
753   754   755  756  757  758  759  760  761  762   763   764
765   766   767  768  769  770  771  772  773  774   775   776
777   778   779  780  781  782  783  784  785  786   787   788
789   790   791  792  793  794  795  796  797  798   799   800
801   802   803  804  805  806  807  808  809  810   811   812
813   814   815  816  817  818  819  820  821  822   823   824
825   826   827  828  829  830  831  832  833  834   835   836
837   838   839  840  841  842  843  844  845  846   847   848
849   850   851  852  853  854  855  856  857  858   859   860
861   862   863  864  865  866  867  868  869  870   871   872
873   874   875  876  877  878  879  880  881  882   883   884
885   886   887  888  889  890  891  892  893  894   895   896
897   898   899  900  901  902  903  904  905  906   907   908
909   910   911  912  913  914  915  916  917  918   919   920
921   922   923  924  925  926  927  928  929  930   931   932
933   934   935  936  937  938  939  940  941  942   943   944
945   946   947  948  949  950  951  952  953  954   955   956
957   958   959  960  961  962  963  964  965  966   967   968
969   970   971  972  973  974  975  976  977  978   979   980
981   982   983  984  985  986  987  988  989  990   991   992
993  994  995  996  997  998  999  1000 0
1111  200  250  300  0
0

output

35
5
Impossible


Listing



© zwir, wierzej, Mon Oct 28 23:01:26 MET DST 1996