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

public class B633 {

	public static BufferedReader read = null;
	public static PrintWriter out = null;
	public static StringTokenizer token = null;

    public static long func(long a)
    {
        long f = 5, s = 0;
        while(f<=a)
        {
            s+=a/f;
            f*=5;
        }
        return s;
    }
	
	public static void solve()
	{
		int m = nint();
        long lo = 1, hi = (long)(1e16), ans = -1;
        while(lo<=hi)
        {
            long mid = (lo+hi)/2;
            long w = func(mid);
            if(w<m)lo=mid+1;
            else if(w>m)hi=mid-1;
            else
            {
                ans = mid;
                hi=mid-1;
            }
        }
        if(ans == -1)
        {
            out.println(0);
        }
        else
        {
            long min = ans;
            while(func(ans+1) == m) ans++;
            out.println(ans-min+1);
            for(long i = min; i<=ans; i++) out.print(i + " ");
        }
	}
	
	public static void main(String[] args)
	{
		read = new BufferedReader(new InputStreamReader(System.in));
		out = new PrintWriter(System.out);
		solve();
		out.flush();
		out.close();
		
	}
	
	// i/o functions
	public static String next() // returns the next string
	{
		while(token == null || !token.hasMoreTokens())
		{
			try {
				token = new StringTokenizer(read.readLine());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		return token.nextToken();
	}
	
	public static int nint()
	{
		return Integer.parseInt(next());
	}
	public static long nlong()
	{
		return Long.parseLong(next());
	}
	public static double ndouble()
	{
		return Double.parseDouble(next());
	}
	public static int[] narr(int n)
	{
		int[] a = new int[n];
		for(int i=0; i<n; i++) a[i] = nint();
		return a;
	}
	
	public static long[] nal(int n)
	{
		long[] a = new long[n];
		for(int i=0; i<n; i++) a[i] = nlong();
		return a;
	}
	
	
}