
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int result = func(n);
System.out.println(result);
}
public static int func(int n) {
if(n>0 && n<=12) {
return n*func(n-1);
} else if(n==0) {
return 1;
} else {
return 0;
}
}
}

n의 수만큼 재귀를 통해 함수를 호출하기 때문에 시간복잡도 O(n)