자기복제 수

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

문제

미샤는 수를 가지고 노는 것을 좋아한다. 며칠 전 미샤는 93762=879093769376^2 = 87909376이고, 제곱한 값의 마지막 네 자리가 다시 93769376이라는 사실을 발견했다. 미샤는 이런 수를 자기복제 수라고 부른다.

미샤는 10진법 말고 다른 진법도 알고 있어서 2진법이나 16진법의 자기복제 수도 궁금해한다. 진법의 밑 bb와 자릿수 nn이 주어질 때, bb진법으로 nn자리인 자기복제 수를 모두 찾는 프로그램을 작성하시오.

xxbb진법 nn자리 자기복제 수라는 것은 다음 두 조건을 모두 만족한다는 뜻이다.

  • 앞에 00을 붙이지 않고 xxbb진법으로 적으면 자릿수가 정확히 nn이다. 00은 한 자리 수 0으로 본다.
  • x2x^2bb진법으로 적었을 때 마지막 nn자리가 xx의 표기와 같다. 즉 x2x(modbn)x^2 \equiv x \pmod{b^n}이다.

입력

첫째 줄에 진법의 밑 bb와 자릿수 nn이 공백 하나로 구분되어 주어진다. (2b362 \le b \le 36, 1n20001 \le n \le 2000)

출력

첫째 줄에 bb진법 nn자리 자기복제 수의 개수 KK를 출력한다. 이어지는 KK개의 줄에 조건을 만족하는 수를 bb진법으로 한 줄에 하나씩, 값이 작은 것부터 큰 순서로 출력한다.

b>10b > 10이면 1010부터 3535까지의 숫자를 대문자 A부터 Z까지로 나타낸다. 조건을 만족하는 수가 하나도 없으면 첫째 줄에 00만 출력한다.