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.*;
import java.util.*;

public class Main
{
    static ArrayList<Integer> primes;
    static ArrayList<Integer>[] primeFactors ;

    static int[] isComposite;

    static void sieve(int N) {
        isComposite = new int[N + 1];
        isComposite[0] = isComposite[1] = 1;
        primes = new ArrayList<Integer>();
        primeFactors= new ArrayList[N + 1] ;
        for(int i = 0 ;i <= N ; i++)
            primeFactors [i] = new ArrayList<>() ;
        for (int i = 2; i <= N; ++i)
        {
            if(i != 2 && i != 5) continue;
            if (isComposite[i] == 0) {
                primes.add(i);
                if (1l * i * i <= N)
                    for (int j = i; j <= N; j += i)
                    {
                        isComposite[j] = 1;
                        primeFactors[j].add(i);
                    }
            }
        }
    }
    static int getId(int x)
    {
        if(x == 2)
            return 0 ;
        return 1 ;
    }
    static int getCnt(int x , int num)
    {
        int cnt = 0 ;
        while(x % num == 0)
        {
            cnt ++ ;
            x /= num ;
        }
        return cnt ;
    }
    public static void main (String [] args) throws Exception
    {
        Scanner sc = new Scanner(System.in);
        PrintWriter out = new PrintWriter(System.out) ;
        sieve((int)1e6 + 1);
        int [] cnt = new int [2] ;
        int n = sc.nextInt() ;
        ArrayList<Integer> ans = new ArrayList<>();
        for(int i = 2 ; i <= 1e6 ; i ++)
        {
            for(int p : primeFactors[i])
                cnt[getId(p)]+= getCnt(i , p) ;

            if(Math.min(cnt[0] , cnt[1])  == n)
                ans.add(i) ;
        }
        out.println(ans.size());
        for(int x : ans)
            out.print(x+" ");
        out.flush();
    }
    static class Scanner
    {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)) ;
        StringTokenizer st ;

        Scanner(InputStream in) {}

        String next() throws Exception
        {
            while (st == null || !st.hasMoreTokens())
                st = new StringTokenizer(br.readLine()) ;
            return st.nextToken() ;
        }
        int nextInt() throws Exception
        {
            return Integer.parseInt(next()) ;
        }
        double nextDouble() throws Exception
        {
            return Double.parseDouble(next()) ;
        }
        long nextLong() throws Exception
        {
            return Long.parseLong(next()) ;
        }
    }

}