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


public class Timus {

    Random rnd = new Random();

    class Point implements Comparable<Point> {

        int x;
        int y;

        Point(int x, int y) {
            this.x = x;
            this.y = y;
        }

        @Override
        public int compareTo(Point point) {
            if (x == point.x)
                return Integer.compare(y, point.y);
            return Integer.compare(x, point.x);
        }

    }

    Point func(int a, int b, int n) {

        return new Point(b, n - a);
    }

    void solve() throws IOException {

        int n = readInt();
        int k = 0;
        int num = 1;
        Set<Integer> ans = new TreeSet<Integer>();
        while (k < n + 1) {

            if (num % 10 == 0 || num % 5 == 0) {

                int tmp = 0;
                int a = num;
                while (a % 10 == 0) {

                    ++tmp;
                    a /= 10;
                }
                while (a % 5 == 0) {

                    ++tmp;
                    a /= 5;
                }
                k += tmp;
            }
            if (k == n) {
                ans.add(num);
            }
            ++num;
        }

        out.println(ans.size());
        for (Integer i : ans)
            out.print(i + " ");

    }

    final boolean ONLINE_JUDGE = System.getProperty("ONLINE_JUDGE") != null;

    BufferedReader in;
    PrintWriter out;
    StringTokenizer tok = new StringTokenizer("");

    public static void main(String[] args){
        new Timus().run();
    }

    public void run() {
        try{
            long timeBegin = System.currentTimeMillis();
            Locale.setDefault(Locale.US);

            init();
            solve();

            out.close();

            long timeEnd = System.currentTimeMillis();
            System.err.println("Time = " + (timeEnd - timeBegin));
        }catch (Exception e){
            e.printStackTrace(System.err);
            System.exit(-1);
        }
    }

    String readString() throws IOException{
        while(!tok.hasMoreTokens()){
            try{
                tok = new StringTokenizer(in.readLine());
            }catch (Exception e){
                return null;
            }
        }

        return tok.nextToken();
    }

    int readInt() throws IOException {
        return Integer.parseInt(readString());
    }

    long readLong() throws IOException {
        return Long.parseLong(readString());
    }

    void init() throws FileNotFoundException{
        Locale.setDefault(Locale.US);

        if (ONLINE_JUDGE){
            in = new BufferedReader(new InputStreamReader(System.in));
            out = new PrintWriter(System.out);
        } else {
            in = new BufferedReader(new FileReader("input.txt"));
            out = new PrintWriter("output.txt");
        }
    }
}