시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB7212940.909%

문제

우람이는 $1$과 $M$ 사이의 수 $N$개로 이루어진 비밀번호를 가지고 있다. 해당 비밀번호를 기억하기 쉽게 하기 위해 각 수를 2진법으로 나타냈을때 1의 개수를 적어두었다. 그 이후 우람이는 비밀번호를 잊어버렸다.

우람이는 비밀번호의 이웃한 수의 차이가 1인 수를 쓰는 것을 좋아한다. 각 수를 이진법으로 나타냈을 때 1의 개수가 주어졌을 때 이웃한 수 중에 차이가 1인 수의 쌍이 가장 많은 비밀번호 수열을 찾아서 우람이를 도와주자. 단, 개수가 같을 경우 사전순으로 가장 작은 수열을 출력한다.

입력

첫째 줄에 $N$과 $M$이 주어진다.

둘째 줄에 우람이의 비밀번호의 각 수를 2진법으로 나타냈을 때 1의 개수를 나타내는 길이 $N$의 수열 $a_1, \cdots, a_N$이 공백을 사이에 두고 주어진다.

출력

첫번째 줄에 가능한 차이가 1인 이웃한 수의 쌍의 개수의 최대값을 출력한다.

두번째 줄에 문제의 조건을 만족하면서 차이가 1인 이웃한 수의 쌍의 개수가 가장 많은 수열을 출력한다. 개수가 같은 수열이 여럿 있는 경우, 사전순으로 가장 작은 수열을 출력한다.

가능한 수열이 없을 경우 -1을 출력한다.

제한

  • $2 \leq N \leq 2000$
  • $3 \leq M \leq 1023$
  • $1 \leq a_i \leq 10$

서브태스크 1 (20점)

$N \leq 7$, $M \leq 7$, $a_i \leq 3$

서브태스크 2 (80점)

추가 제한 조건이 없다.

예제 입력 1

5 7
1 3 2 2 3

예제 출력 1

2
1 7 5 6 7

예제 입력 2

7 7
1 1 2 1 2 2 3

예제 출력 2

6
1 2 3 4 5 6 7

예제 입력 3

3 3
3 3 3

예제 출력 3

-1

힌트

수열 $a_1, ..., a_n$과 수열 $b_1, ... b_n$에 대해 앞의 수열이 더 사전순으로 작다는 것은 다음과 같다.

어떤 $i$가 존재해서 모든 $j<i$에 대해 $a_j = b_j$이고 $a_i < b_i$이다.

W3sicHJvYmxlbV9pZCI6IjMyMTUxIiwicHJvYmxlbV9sYW5nIjoiMCIsInRpdGxlIjoiXHViZTQ0XHViYzAwXHViYzg4XHVkNjM4IiwiZGVzY3JpcHRpb24iOiI8cD5cdWM2YjBcdWI3OGNcdWM3NzRcdWIyOTQgJDEkXHVhY2ZjICRNJCBcdWMwYWNcdWM3NzRcdWM3NTggXHVjMjE4ICROJFx1YWMxY1x1Yjg1YyBcdWM3NzRcdWI4ZThcdWM1YjRcdWM5YzQgXHViZTQ0XHViYzAwXHViYzg4XHVkNjM4XHViOTdjIFx1YWMwMFx1YzljMFx1YWNlMCBcdWM3ODhcdWIyZTQuIFx1ZDU3NFx1YjJmOSBcdWJlNDRcdWJjMDBcdWJjODhcdWQ2MzhcdWI5N2MgXHVhZTMwXHVjNWI1XHVkNTU4XHVhZTMwIFx1YzI3ZFx1YWM4YyBcdWQ1NThcdWFlMzAgXHVjNzA0XHVkNTc0IFx1YWMwMSBcdWMyMThcdWI5N2MgMlx1YzljNFx1YmM5NVx1YzczY1x1Yjg1YyBcdWIwOThcdWQwYzBcdWIwYzhcdWM3NDRcdWI1NGMgMVx1Yzc1OCBcdWFjMWNcdWMyMThcdWI5N2MgXHVjODAxXHVjNWI0XHViNDUwXHVjNWM4XHViMmU0LiBcdWFkZjggXHVjNzc0XHVkNmM0IFx1YzZiMFx1Yjc4Y1x1Yzc3NFx1YjI5NCBcdWJlNDRcdWJjMDBcdWJjODhcdWQ2MzhcdWI5N2MgXHVjNzhhXHVjNWI0XHViYzg0XHViODM4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM2YjBcdWI3OGNcdWM3NzRcdWIyOTQgXHViZTQ0XHViYzAwXHViYzg4XHVkNjM4XHVjNzU4IFx1Yzc3NFx1YzZjM1x1ZDU1YyBcdWMyMThcdWM3NTggXHVjYzI4XHVjNzc0XHVhYzAwIDFcdWM3NzggXHVjMjE4XHViOTdjIFx1YzRmMFx1YjI5NCBcdWFjODNcdWM3NDQgXHVjODhiXHVjNTQ0XHVkNTVjXHViMmU0LiBcdWFjMDEgXHVjMjE4XHViOTdjIFx1Yzc3NFx1YzljNFx1YmM5NVx1YzczY1x1Yjg1YyBcdWIwOThcdWQwYzBcdWIwYzhcdWM3NDQgXHViNTRjIDFcdWM3NTggXHVhYzFjXHVjMjE4XHVhYzAwIFx1YzhmY1x1YzViNFx1Yzg0Y1x1Yzc0NCBcdWI1NGMgXHVjNzc0XHVjNmMzXHVkNTVjIFx1YzIxOCBcdWM5MTFcdWM1ZDAgXHVjYzI4XHVjNzc0XHVhYzAwIDFcdWM3NzggXHVjMjE4XHVjNzU4IFx1YzMwZFx1Yzc3NCBcdWFjMDBcdWM3YTUgXHViOWNlXHVjNzQwIFx1YmU0NFx1YmMwMFx1YmM4OFx1ZDYzOCBcdWMyMThcdWM1ZjRcdWM3NDQgXHVjYzNlXHVjNTQ0XHVjMTFjIFx1YzZiMFx1Yjc4Y1x1Yzc3NFx1Yjk3YyBcdWIzYzRcdWM2NDBcdWM4ZmNcdWM3OTAuIFx1YjJlOCwgXHVhYzFjXHVjMjE4XHVhYzAwIFx1YWMxOVx1Yzc0NCBcdWFjYmRcdWM2YjAgXHVjMGFjXHVjODA0XHVjMjFjXHVjNzNjXHViODVjIFx1YWMwMFx1YzdhNSBcdWM3OTFcdWM3NDAgXHVjMjE4XHVjNWY0XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgJE4kXHVhY2ZjICRNJFx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjQ1OFx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVjNmIwXHViNzhjXHVjNzc0XHVjNzU4IFx1YmU0NFx1YmMwMFx1YmM4OFx1ZDYzOFx1Yzc1OCBcdWFjMDEgXHVjMjE4XHViOTdjIDJcdWM5YzRcdWJjOTVcdWM3M2NcdWI4NWMgXHViMDk4XHVkMGMwXHViMGM4XHVjNzQ0IFx1YjU0YyAxXHVjNzU4IFx1YWMxY1x1YzIxOFx1Yjk3YyBcdWIwOThcdWQwYzBcdWIwYjRcdWIyOTQgXHVhZTM4XHVjNzc0ICROJFx1Yzc1OCBcdWMyMThcdWM1ZjQgJGFfMSwgXFxjZG90cywgYV9OJFx1Yzc3NCBcdWFjZjVcdWJjMzFcdWM3NDQgXHVjMGFjXHVjNzc0XHVjNWQwIFx1YjQ1MFx1YWNlMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuIiwib3V0cHV0IjoiPHA+XHVjY2FiXHViYzg4XHVjOWY4IFx1YzkwNFx1YzVkMCBcdWFjMDBcdWIyYTVcdWQ1NWMgXHVjYzI4XHVjNzc0XHVhYzAwIDFcdWM3NzggXHVjNzc0XHVjNmMzXHVkNTVjIFx1YzIxOFx1Yzc1OCBcdWMzMGRcdWM3NTggXHVhYzFjXHVjMjE4XHVjNzU4IFx1Y2Q1Y1x1YjMwMFx1YWMxMlx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjQ1MFx1YmM4OFx1YzlmOCBcdWM5MDRcdWM1ZDAgXHViYjM4XHVjODFjXHVjNzU4IFx1Yzg3MFx1YWM3NFx1Yzc0NCBcdWI5Y2NcdWM4NzFcdWQ1NThcdWJhNzRcdWMxMWMgXHVjYzI4XHVjNzc0XHVhYzAwIDFcdWM3NzggXHVjNzc0XHVjNmMzXHVkNTVjIFx1YzIxOFx1Yzc1OCBcdWMzMGRcdWM3NTggXHVhYzFjXHVjMjE4XHVhYzAwIFx1YWMwMFx1YzdhNSBcdWI5Y2VcdWM3NDAgXHVjMjE4XHVjNWY0XHVjNzQ0IFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHVhYzFjXHVjMjE4XHVhYzAwIFx1YWMxOVx1Yzc0MCBcdWMyMThcdWM1ZjRcdWM3NzQgXHVjNWVjXHViN2ZmIFx1Yzc4OFx1YjI5NCBcdWFjYmRcdWM2YjAsIFx1YzBhY1x1YzgwNFx1YzIxY1x1YzczY1x1Yjg1YyBcdWFjMDBcdWM3YTUgXHVjNzkxXHVjNzQwIFx1YzIxOFx1YzVmNFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YWMwMFx1YjJhNVx1ZDU1YyBcdWMyMThcdWM1ZjRcdWM3NzQgXHVjNWM2XHVjNzQ0IFx1YWNiZFx1YzZiMCAtMVx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IjxwPlx1YzIxOFx1YzVmNCAkYV8xLCAuLi4sIGFfbiRcdWFjZmMgXHVjMjE4XHVjNWY0ICRiXzEsIC4uLiBiX24kXHVjNWQwIFx1YjMwMFx1ZDU3NCBcdWM1NWVcdWM3NTggXHVjMjE4XHVjNWY0XHVjNzc0IFx1YjM1NCBcdWMwYWNcdWM4MDRcdWMyMWNcdWM3M2NcdWI4NWMgXHVjNzkxXHViMmU0XHViMjk0IFx1YWM4M1x1Yzc0MCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM1YjRcdWI1YTQgJGkkXHVhYzAwIFx1Yzg3NFx1YzdhY1x1ZDU3NFx1YzExYyBcdWJhYThcdWI0ZTAgJGombHQ7aSRcdWM1ZDAgXHViMzAwXHVkNTc0ICRhX2ogPSBiX2okXHVjNzc0XHVhY2UwICRhX2kgJmx0OyBiX2kkXHVjNzc0XHViMmU0LjxcL3A+XHJcbiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIiwibGltaXQiOiI8dWw+XHJcblx0PGxpPiQyIFxcbGVxIE4gXFxsZXEgMjAwMCQ8XC9saT5cclxuXHQ8bGk+JDMgXFxsZXEgTSBcXGxlcSAxMDIzJDxcL2xpPlxyXG5cdDxsaT4kMSBcXGxlcSBhX2kgXFxsZXEgMTAkPFwvbGk+XHJcbjxcL3VsPlxyXG4iLCJzdWJ0YXNrMSI6IjxwPiROIFxcbGVxIDckLCAkTSBcXGxlcSA3JCwgJGFfaSBcXGxlcSAzJDxcL3A+XHJcbiIsInN1YnRhc2syIjoiPHA+XHVjZDk0XHVhYzAwIFx1YzgxY1x1ZDU1YyBcdWM4NzBcdWFjNzRcdWM3NzQgXHVjNWM2XHViMmU0LjxcL3A+XHJcbiJ9LHsicHJvYmxlbV9pZCI6IjMyMTUxIiwicHJvYmxlbV9sYW5nIjoiMSIsInRpdGxlIjoiUGFzc2NvZGUiLCJkZXNjcmlwdGlvbiI6IjxwPkFsaWNlJiMzOTtzIHBhc3Njb2RlIGlzIGEgc2VxdWVuY2Ugb2YgJE4kJm5ic3A7aW50ZWdlcnMgYmV0d2VlbiAkMSQgYW5kICRNJCwgaW5jbHVzaXZlLiBUbyByZW1lbWJlciB0aGUgcGFzc2NvZGUgZWFzaWx5LCBBbGljZSBoYWQgd3JpdHRlbiBkb3duIHRoZSBudW1iZXIgb2YgMSYjMzk7cyBpbiB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGVhY2ggbnVtYmVyIGluIHRoZSBwYXNzY29kZSBzZXF1ZW5jZS4gVGhlbiwgc2hlIGZvcmdvdCB0aGUgb3JpZ2luYWwgcGFzc2NvZGUuPFwvcD5cclxuXHJcbjxwPkFsaWNlIGxpa2VzIHVzaW5nIHR3byBudW1iZXJzIHRoYXQgZGlmZmVyIGJ5IDEgYXMgYWRqYWNlbnQgbnVtYmVycyBpbiB0aGUgcGFzc2NvZGUgc2VxdWVuY2UuIEdpdmVuIHRoZSBudW1iZXIgb2YgMSYjMzk7cyBpbiB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGVhY2ggbnVtYmVyIGluIHRoZSBzZXF1ZW5jZSwgaGVscCBBbGljZSBieSBmaW5kaW5nIHRoZSBudW1iZXIgc2VxdWVuY2Ugd2l0aCB0aGUmbmJzcDttYXhpbXVtIG51bWJlciBvZiZuYnNwOyBhZGphY2VudCBwYWlycyBvZiBudW1iZXJzIHRoYXQgZGlmZmVyIGJ5IDEuIElmIG11bHRpcGxlIHN1Y2ggc2VxdWVuY2VzIGV4aXN0LCB0aGVuIG91dHB1dCB0aGUgb25lIHRoYXQgY29tZXMgbGV4aWNvZ3JhcGhpY2FsbHkgZmlyc3QuPFwvcD5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBvZiBpbnB1dCB3aWxsIGNvbnRhaW4gJE4kIGFuZCAkTSQuPFwvcD5cclxuXHJcbjxwPlRoZSBzZWNvbmQgbGluZSB3aWxsIGNvbnRhaW4gJGFfMSwgXFxjZG90cywgYV9OJCwgYSBzZXF1ZW5jZSBvZiBsZW5ndGggJE4kIHNlcGFyYXRlZCBieSB3aGl0ZXNwYWNlLCB0aGF0IGRlbm90ZSB0aGUgbnVtYmVycyBvZiAxJiMzOTtzIGluIGVhY2ggbnVtYmVyIGluIEFsaWNlJiMzOTtzIHBhc3Njb2RlLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkluIHRoZSBmaXJzdCBsaW5lLCBvdXRwdXQmbmJzcDt0aGUgbWF4aW11bSBwb3NzaWJsZSBudW1iZXIgb2YgYWRqYWNlbnQmbmJzcDtwYWlycyBvZiBudW1iZXJzIHRoYXQgZGlmZmVyIGJ5IDEuPFwvcD5cclxuXHJcbjxwPkluIHRoZSBzZWNvbmQgbGluZSwgb3V0cHV0IHRoZSBzZXF1ZW5jZSBvZiBudW1iZXJzJm5ic3A7dGhhdCBzYXRpc2ZpZXMgdGhlIHByb2JsZW0mIzM5O3MmbmJzcDtjb25kaXRpb25zIGFuZCBoYXMgdGhlIG1heGltdW0gbnVtYmVyIG9mIGFkamFjZW50IHBhaXJzIG9mIG51bWJlcnMgdGhhdCBkaWZmZXIgYnkgMS4gSWYgdGhlcmUgZXhpc3QgbXVsdGlwbGUgc3VjaCBzZXF1ZW5jZXMsIG91dHB1dCB0aGUgbGV4aWNvZ3JhcGhpY2FsbHkgZmlyc3Qgc2VxdWVuY2UuPFwvcD5cclxuXHJcbjxwPklmIG5vIHN1Y2ggc2VxdWVuY2UgZXhpc3RzLCBvdXRwdXQgLTEuPFwvcD5cclxuIiwiaGludCI6IjxwPkdpdmVuIHR3byBzZXF1ZW5jZXMgJGFfMSwgLi4uLCBhX24kIGFuZCAkYl8xLCAuLi4gYl9uJCwgd2Ugc2F5IHRoYXQgdGhlIGZvcm1lciBjb21lcyBiZWZvcmUgdGhlIGxhdHRlciBpbiBsZXhpY29ncmFwaGljIG9yZGVyIGlmIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZS48XC9wPlxyXG5cclxuPHA+VGhlcmUgZXhpc3RzIHNvbWUgJGkkIHN1Y2ggdGhhdCBmb3IgYWxsICRqIFxcbHQgaSQsICRhX2ogPSBiX2okIGFuZCAkYV9pIFxcbHQgYl9pJC48XC9wPlxyXG4iLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2giLCJsaW1pdCI6Ijx1bD5cclxuXHQ8bGk+JDIgXFxsZXEgTiBcXGxlcSAyMDAwJDxcL2xpPlxyXG5cdDxsaT4kMyBcXGxlcSBNIFxcbGVxIDEwMjMkPFwvbGk+XHJcblx0PGxpPiQxIFxcbGVxIGFfaSBcXGxlcSAxMCQ8XC9saT5cclxuPFwvdWw+XHJcbiIsInN1YnRhc2sxIjoiPHA+JE4gXFxsZXEgNyQsICRNIFxcbGVxIDckLCAkYV9pJm5ic3A7XFxsZXEgMyQ8XC9wPlxyXG4iLCJzdWJ0YXNrMiI6IjxwPlRoZXJlIGFyZSBubyBhZGRpdGlvbmFsIGNvbnN0cmFpbnRzLjxcL3A+XHJcbiJ9XQ==

출처

채점 및 기타 정보

  • 예제는 채점하지 않는다.