// NON-TAIL RECURSIVE
import java.io.*;
import java.util.*;
class GFG
{
static void fun(int n)
{
if(n == 0 || n == 1)
return 1;
return n*fact(n - 1);
}
public static void main(String [] args)
{
fun(3);
}
}
// TAIL RECURSIVE
import java.io.*;
import java.util.*;
class GFG {
static int fact(int n, int k)
{
if(n == 0 || n == 1)
return k;
return fact(n - 1, k * n);
}
public static void main(String [] args)
{
System.out.println(fact(3, 1));
}
}