Problem: Mr. Santa asks all the great programmers of the world to solve a trivial problem. He gives them an integer m and asks for the number of positive integers n, such that the factorial of n ends with exactly m zeroes. Are you among those great programmers who can solve this problem?

Input

The only line of input contains an integer m (1 ≤ m ≤ 100 000) — the required number of trailing zeroes in factorial.

Output

First print k — the number of values of n such that the factorial of n ends with m zeroes. Then print these k integers in increasing order.

Examples

Input

1


Output

5
5 6 7 8 9 

Input

5


Output

0

Note

The factorial of n is equal to the product of all integers from 1 to n inclusive, that is n! = 1·2·3·...·n.

In the first sample, 5! = 120, 6! = 720, 7! = 5040, 8! = 40320 and 9! = 362880.

Solution (in JAVA):

Solution:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;

public class ATrivialProblem {

	static boolean[] numbers = new boolean[100010];
	static ArrayList<Integer> primes = new ArrayList<>();
	static int[] primeFactors;
	static int[] fives = new int[410000];
	static int[] num = new int[105000];

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		sieve(10000);
		primeFactors = new int[primes.size()];
		for(int i = 2; i < 410000; i++) {
			//			Arrays.fill(primeFactors, 0);
			primeFactors(i);
			fives[i] = Math.min(primeFactors[0], primeFactors[2]);
			num[fives[i]]++;
			//			System.out.println(Arrays.toString(primeFactors));
			//			System.out.println(primeFactors[2]);
			//			ans += primeFactors[2];
		}
		System.out.println(num[n]);
		for(int i = 0; i < fives.length; i++) {
			if(fives[i] > n)
				break;
			if(fives[i] == n)
				System.out.print(i + " ");
		}
	}


	public static void sieve(int upperbound) {
		long sieve_size = upperbound + 1;
		Arrays.fill(numbers, true);
		numbers[0] = numbers[1] = false;
		for(long i = 2; i <= sieve_size; i++) {
			if(numbers[(int) i]) {
				for(long j = i * i ; j <= sieve_size; j += i) {
					numbers[(int) j] = false;
				}
				primes.add((int) i);
			}
		}
	}

	public static void primeFactors(int num) {
		//      System.out.println(num);
		if(num <= 1)
			return;
		int primeIdx = 0;
		int prime = primes.get(primeIdx);
		while(prime * prime <= num) {
			while(num % prime == 0) {
				num /= prime;
				primeFactors[primeIdx]++;
			}
			prime = primes.get(++primeIdx);
		}
		//      System.out.println(num);
		if(num != 1 && num <= 10000)
			primeFactors[primes.indexOf(num)]++;
		//      System.out.println("---");
		//		System.out.println(Arrays.toString(primeFactors));

	}

}