Renoveringen

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

Johanna håller på att renovera hemma i sin lägenhet. Eftersom Johanna inte gillar att lämna saker åt slumpen har hon planerat in i detalj precis hur många spikar hon behöver under renoveringen. Totalt sett behöver hon NN spikar med längderna x_1,x_2,,x_Nx\_1, x\_2, \dots, x\_N. I hennes spiklåda har hon MM spikar av längderna y_1,y_2,,y_My\_1, y\_2, \dots, y\_M.

Om Johanna behöver en spik med längd x_ix\_i kan hon använda en spik med längd y_jy\_j om x_iy_jx\_i \le y\_j eftersom hon kan kapa av den längre spiken tills den är precis så lång som behövs. Däremot kan hon inte kombinera två korta spikar till en längre spik, eller kapa en spik flera gånger (den har ju bara ett spikhuvud).

Innan Johanna ska börja med renoveringen vill hon veta:

  • hur många spikar hon behöver köpa, och
  • vilka längder spikarna hon behöver köpa ska ha.

Hon vill köpa så få spikar som möjligt, och vill dessutom köpa spikar av så kort total längd som möjligt.

입력

På den första raden står två heltal 1N151 \le N \le 15 och 1M151 \le M \le 15 -- antalet spikar Johanna behöver och antalet spikar Johanna har. På den andra raden står NN heltal 1x_1,x_2,,x_N1001 \le x\_1, x\_2, \dots, x\_N \le 100, längderna på de spikar Johanna behöver. På den tredje raden står MM heltal 1y_1,y_2,,y_M1001 \le y\_1, y\_2, \dots, y\_M \le 100, längderna på de spikar Johanna har.

출력

Programmet ska först skriva ut ett heltal: det minsta antalet spikar Johanna behöver köpa. På nästa rad ska programmet skriva ut längderna på spikarna Johanna ska köpa, i stigande ordning.

힌트

I exempel 1 uppfyller behöver Johanna bara fylla på med tre extra spikar av längderna 1313, 2828 och 7777.

I exempel 2 behöver Johanna köpa en till spik av längd 1111, och dessutom kapa en spik av längd 100100 till 5050. Hon skulle kunnat köpa en spik av längd 5050 och kapa spiken av längd 100100 till längd 1111, men då behöver hon köpa spikar av längre total längd.