Problem hidden
This problem was hidden by Editorial Board member probably because it has incorrect language version or invalid test data, or description of the problem is not clear.
Problem hidden on 2021-03-10 06:37:58 by Jing Wang

C2013A2 - Number trick

Lukas is to hold a presentation on useful mathematical tricks. E.g., to take the square root of a number you just need to remove the first half of the number. To convince his audience he uses the well tested method of proof by example: sqrt{25} = 5 and sqrt{5776} = 76 so the method obviously works. To multiply a number by X = 2.6 all you have to do is move the first digit to the end of the number, 135 x 2.6 = 351 and 270270 x 2.6 = 702702. Lukas wants to demonstrate that this last method works for any X. To do this he will ask his audience for values of X and then show them example multiplications for which the method works. Lukas has noticed that he can not just pick arbitrary numbers for his examples, so now he wants your help. Can you write a program that given X gives a list of integers for which multiplying by X is equivalent to moving the first digit to the end of the number? Lukas does not like very large numbers so do not list any numbers with more than 8 digits.

Input

The input is a single decimal number X (1 <= X < 1000) with at most 4 digits after the decimal point.

Output

Output a list of all positive integers less than 10^8 for which Lukas' second trick works. Write the numbers in ascending order, one number per line. If the list is empty, output instead No solution.

Sample

Sample Input 1
2.6

Sample Output 1
135
270
135135
270270

Sample Input 2
3.1416

Sample Output 2
No solution

Added by:ab
Date:2013-10-10
Time limit:1s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:C C++ 4.3.2 CPP JAVA
Resource:NCPC2013
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.