public class Appels {

    public static int indentation;

    public static long fact(long n){
        for (int i = 0; i < indentation; i++) {
            System.out.print("  ");
        }
        System.out.println("Argument début: "+n);
        indentation++;
        if(n==1l){
            //Thread.dumpStack();
            return 1;
        }else{
            long r=n*fact(n-1l);
            for (int i = 0; i < indentation-1; i++) {
            System.out.print("  ");
        }
            indentation--;
            System.out.println("Argument  fin:  "+r);
            return r;
        }
    }

    public static void main(String args[]){
        long x=Long.parseLong(args[0]);
        indentation=0;
        System.out.println(x+"! = "+fact(x));
    }
}