P1207 [USACO1.2] Dual Palindromes
Background
If a number reads the same from left to right and from right to left, then it is called a "palindrome." For example, $12321$ is a palindrome, while $77778$ is not. We do not allow leading zeros in the representation; therefore, $0220$ is not considered a palindrome.
In fact, some numbers (such as $21$) are not palindromes in base $10$, but they are palindromes in other bases (for example, in base $2$ it is $10101$).
Description
A number that reads the same from right to left as when read from left to right is called a palindrome. The number $12321$ is a palindrome; the number $77778$ is not. Palindromes have neither leading nor trailing zeroes, so $0220$ is not a palindrome.
The number $21$ (base $10$) is not a palindrome in base $10$, but the number $21$ (base $10$) is a palindrome in base $2$ ($10101$).
Write a program that reads two numbers expressed in base $10$:
- $N$ ($1 \le N \le 15$)
- $S$ ($0 < S < 10000$)
Then find and print (in base $10$) the first $N$ numbers strictly greater than $S$ that are palindromic when written in two or more number bases ($2 \le \text{base} \le 10$).
Solutions to this problem do not require manipulating integers larger than the standard $32$ bits.
Input Format
A single line with space separated integers $N$ and $S$.
Output Format
$N$ lines, each with a base $10$ number that is palindromic when expressed in at least two of the bases $2..10$. The numbers should be listed in order from smallest to largest.
Explanation/Hint
USACO Training Section 1.2.