/* * 一开始 2009 后面的全部为0 前面的用BigInteger 暴力 TLE * 后来试了很多收据从41开始后面的数据全部为0 前面的乘下就OK了 */ import java.util.*; import java.io.*; import java.math.*; public class Main2674 { //static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in))); //static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); static Scanner cin = new Scanner(new BufferedInputStream(System.in)); public static void main(String[] args){ while(cin.hasNext()){ BigInteger a = cin.nextBigInteger(); if(a.compareTo(BigInteger.valueOf(41)) >= 0){ //out.println(0); System.out.println("0");; continue; } BigInteger ans = BigInteger.ONE; for(int i = 2; i <= a.intValue(); i++){ ans = ans.multiply(BigInteger.valueOf(i)); } /* long ans = 1; for(int i = 2; i <= a.intValue(); i++){ ans = (ans * i) % 2009; } */ //System.out.println(ans); //out.println(ans.remainder(BigInteger.valueOf(2009))); System.out.println(ans.remainder(BigInteger.valueOf(2009))); } //out.flush(); } }