import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
import java.util.Scanner;
class helper
{
Ideone adder(Ideone a, Ideone b)
{
Ideone c=new Ideone();
int length;
int l1=a.size();
int l2=b.size();
if(l1>=l2)
{
length=l2;;
}
else
{
length=l1;
}
int carry=0;
int sum=0;
for(int i=0;i<length;i++)
{
sum=a.top()+b.top()+carry;
c.push(sum%10);
if(sum>9)
carry=1;
else
carry=0;
a.pop();
b.pop(); sum=0;
}
if(carry==1 && l1==l2)
c.push(1);
else if(l1==length)
{
int counter=l2-length-1;
if(b.top!=-1)
{sum=b.top()+carry;
c.push(sum%10);
b.pop();
if(sum>9)
carry=1;
else
carry=0;
for(int i=0;i<counter;i++)
{
sum=b.top()+carry;
c.push(sum%10);
b.pop();
if(sum>9)
carry=1;
else
carry=0;
}
if(carry>0)
c.push(carry);}
else
return c;
}
else if(l2==length)
{
int counter=l1-length-1;
sum=a.top()+carry;
c.push(sum%10);
a.pop();
if(sum>9)
carry=1;
else
carry=0;
for(int i=0;i<counter;i++)
{
sum=a.top()+carry;
c.push(sum%10);
a.pop();
if(sum>9)
carry=1;
else
carry=0;
}
if(carry>0)
c.push(carry);
}
return c;
}
Ideone multiplier(Ideone a,int b)
{
int size=a.size();
int[] arr=new int[size];
for(int i=0;i<size;i++){
arr[i]=a.top();
a.pop();
}
int no_of_stacks=0; int s=0;
int z=b; int rem=0; int carry=0;
int[] n=new int[5];
while(z>0)
{
n[s++]=z%10;
z=z/10;
no_of_stacks++;
}
Ideone obj1=new Ideone();
Ideone obj2=new Ideone();
Ideone obj3=new Ideone();
Ideone obj4=new Ideone();
for(int i=0;i<no_of_stacks;i++)
{
rem=n[i];
if(i==0){
for(int j=0;j<size;j++)
{
int sum=0;
sum=((rem*arr[j])+carry)%10;
obj1.push(sum);
carry=((rem*arr[j])+carry)/10;
}
if(carry>0)
obj1.push(carry);
}
else if(i==1)
{
carry=0;
for(int k=0;k<i;k++)
{
obj2.push(0);
}
for(int j=0;j<size;j++)
{
obj2.push(((rem*arr[j])+carry)%10);
carry=((rem*arr[j])+carry)/10;
}
if(carry>0)
obj2.push(carry);
}
else if(i==2)
{
carry=0;
for(int k=0;k<i;k++)
{
obj3.push(0);
}
for(int j=0;j<size;j++)
{
obj3.push(((rem*arr[j])+carry)%10);
carry=((rem*arr[j])+carry)/10;
}
if(carry>0)
obj3.push(carry);
}
else if(i==3)
{
carry=0;
for(int k=0;k<i;k++)
{
obj4.push(0);
}
for(int j=0;j<size;j++)
{
obj4.push(((rem*arr[j])+carry)%10);
carry=((rem*arr[j])+carry)/10;
}
if(carry>0)
obj4.push(carry);
}
}
if(no_of_stacks==1)
{
return obj1;
}
else if(no_of_stacks==2)
{
Ideone o=reverse(obj1);
Ideone p =reverse(obj2);
Ideone m=adder(o,p);
return m;
}
else if(no_of_stacks==3)
{
Ideone o=reverse(obj1);
Ideone p =reverse(obj2);
Ideone x=reverse(obj3);
Ideone m=adder(o,p);
Ideone y=reverse(m);
return adder(y,x);
}
else
{
Ideone o=reverse(obj1);
Ideone p =reverse(obj2);
Ideone x=reverse(obj3);
Ideone c=reverse(obj4);
Ideone m=adder(o,p);
Ideone y=reverse(m);
o=adder(y,x);
p=reverse(o);
return adder(o,c);
}
}
Ideone reverse(Ideone node)
{
Ideone n=new Ideone();
int l=node.size();
for(int i=0;i<l;i++)
{
n.push(node.top());
node.pop();
}
return n;
}
}
class Ideone {
int[] stack=new int[2600];
int top=-1;
int size()
{
return top+1;
}
int top()
{
return stack[top];}
boolean isempty()
{
if(top==-1)
return true;
else
return false;
}
boolean isfull()
{
if(top==2599)
return true;
else
return false;
}
void push(int n)
{
if(!isfull())
{
stack[++top]=n;
}
}
void pop()
{
if(!isempty())
top-=1;
}
public static void main
(String[] arg
) {
Scanner scan
=new Scanner
(System.
in); int n=scan.nextInt();
Ideone obj=new Ideone();
obj.push(1);
helper me= new helper();
for(int i=1;i<=n;i++)
{
obj=me.multiplier(obj,i);
obj=me.reverse(obj);
}
Ideone j=new Ideone();
j=me.reverse(obj);
int l=j.size();
for(int i=0;i<l;i++)
{
j.pop();
}
scan.close();
}
}
CmltcG9ydCBqYXZhLnV0aWwuKjsKaW1wb3J0IGphdmEubGFuZy4qOwppbXBvcnQgamF2YS5pby4qOwoKLyogTmFtZSBvZiB0aGUgY2xhc3MgaGFzIHRvIGJlICJNYWluIiBvbmx5IGlmIHRoZSBjbGFzcyBpcyBwdWJsaWMuICovCmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKY2xhc3MgaGVscGVyCgl7CgkJSWRlb25lIGFkZGVyKElkZW9uZSBhLCBJZGVvbmUgYikKCQl7CgkJCUlkZW9uZSBjPW5ldyBJZGVvbmUoKTsKCQkJaW50IGxlbmd0aDsKCQkJaW50IGwxPWEuc2l6ZSgpOwoJCQlpbnQgbDI9Yi5zaXplKCk7CgkJCWlmKGwxPj1sMikKCQkJewoJCQkJbGVuZ3RoPWwyOzsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCQoJCQkJbGVuZ3RoPWwxOwoJCQl9CgkJCWludCBjYXJyeT0wOwoJCQlpbnQgc3VtPTA7CgkJCWZvcihpbnQgaT0wO2k8bGVuZ3RoO2krKykKCQkJewoJCQkJc3VtPWEudG9wKCkrYi50b3AoKStjYXJyeTsKCQkJCWMucHVzaChzdW0lMTApOwoJCQkJaWYoc3VtPjkpCgkJCQkJY2Fycnk9MTsKCQkJCWVsc2UKCQkJCQljYXJyeT0wOwoJCQkJCgkJCQlhLnBvcCgpOwoJCQkJYi5wb3AoKTsgc3VtPTA7CgkJCX0KCQkJaWYoY2Fycnk9PTEgJiYgbDE9PWwyKQoJCQkJYy5wdXNoKDEpOwoJCQllbHNlIGlmKGwxPT1sZW5ndGgpCgkJCXsKCQkJCWludCBjb3VudGVyPWwyLWxlbmd0aC0xOwoJCQkJaWYoYi50b3AhPS0xKQoJCQkJe3N1bT1iLnRvcCgpK2NhcnJ5OwoJCQkJYy5wdXNoKHN1bSUxMCk7CgkJCQliLnBvcCgpOwoJCQkJaWYoc3VtPjkpCgkJCQkJY2Fycnk9MTsKCQkJCWVsc2UKCQkJCQljYXJyeT0wOwoJCQkJZm9yKGludCBpPTA7aTxjb3VudGVyO2krKykKCQkJCXsKCQkJCQlzdW09Yi50b3AoKStjYXJyeTsKCQkJCQljLnB1c2goc3VtJTEwKTsKCQkJCQliLnBvcCgpOwoJCQkJCWlmKHN1bT45KQoJCQkJCQljYXJyeT0xOwoJCQkJCWVsc2UKCQkJCQkJY2Fycnk9MDsKCQkJCQkKCQkJCX0KCQkJCWlmKGNhcnJ5PjApCgkJCQkJYy5wdXNoKGNhcnJ5KTt9CgkJCQllbHNlCgkJCQkJcmV0dXJuIGM7CgkJCX0KCQkJCgkJCWVsc2UgaWYobDI9PWxlbmd0aCkKCQkJewoJCQkJaW50IGNvdW50ZXI9bDEtbGVuZ3RoLTE7CgkJCQlzdW09YS50b3AoKStjYXJyeTsKCQkJCWMucHVzaChzdW0lMTApOwoJCQkJYS5wb3AoKTsKCQkJCWlmKHN1bT45KQoJCQkJCWNhcnJ5PTE7CgkJCQllbHNlCgkJCQkJY2Fycnk9MDsKCQkJCWZvcihpbnQgaT0wO2k8Y291bnRlcjtpKyspCgkJCQl7CgkJCQkJc3VtPWEudG9wKCkrY2Fycnk7CgkJCQkJYy5wdXNoKHN1bSUxMCk7CgkJCQkJYS5wb3AoKTsKCQkJCQlpZihzdW0+OSkKCQkJCQkJY2Fycnk9MTsKCQkJCQllbHNlCgkJCQkJCWNhcnJ5PTA7CgkJCQkJCgkJCQl9CgkJCQlpZihjYXJyeT4wKQoJCQkJCWMucHVzaChjYXJyeSk7CgkJCX0KCQkJcmV0dXJuIGM7CQoJCX0KCQlJZGVvbmUgbXVsdGlwbGllcihJZGVvbmUgYSxpbnQgYikKCQl7CgkJCWludCBzaXplPWEuc2l6ZSgpOwoJCQlpbnRbXSBhcnI9bmV3IGludFtzaXplXTsKCQkJZm9yKGludCBpPTA7aTxzaXplO2krKyl7CgkJCQlhcnJbaV09YS50b3AoKTsKCQkJCWEucG9wKCk7CgkJCX0KCQkJaW50IG5vX29mX3N0YWNrcz0wOyBpbnQgcz0wOwoJCQlpbnQgej1iOyBpbnQgcmVtPTA7IGludCBjYXJyeT0wOwoJCQlpbnRbXSBuPW5ldyBpbnRbNV07CgkJCXdoaWxlKHo+MCkKCQkJewoJCQkJbltzKytdPXolMTA7CgkJCQl6PXovMTA7CgkJCQlub19vZl9zdGFja3MrKzsKCQkJfQoJCQlJZGVvbmUgb2JqMT1uZXcgSWRlb25lKCk7CgkJCUlkZW9uZSBvYmoyPW5ldyBJZGVvbmUoKTsKCQkJSWRlb25lIG9iajM9bmV3IElkZW9uZSgpOwoJCQlJZGVvbmUgb2JqND1uZXcgSWRlb25lKCk7CgkJCWZvcihpbnQgaT0wO2k8bm9fb2Zfc3RhY2tzO2krKykKCQkJewoJCQkJcmVtPW5baV07CgkJCQlpZihpPT0wKXsKCQkJCWZvcihpbnQgaj0wO2o8c2l6ZTtqKyspCgkJCQl7CgkJCQkJaW50IHN1bT0wOwoJCQkJCXN1bT0oKHJlbSphcnJbal0pK2NhcnJ5KSUxMDsKCQkJCQlvYmoxLnB1c2goc3VtKTsKCQkJCQljYXJyeT0oKHJlbSphcnJbal0pK2NhcnJ5KS8xMDsKCQkJCX0KCQkJCWlmKGNhcnJ5PjApCgkJCQkJb2JqMS5wdXNoKGNhcnJ5KTsKCX0KCQkJCWVsc2UgaWYoaT09MSkKCQkJCXsKCQkJCQljYXJyeT0wOwoJCQkJCWZvcihpbnQgaz0wO2s8aTtrKyspCgkJCQkJewoJCQkJCQlvYmoyLnB1c2goMCk7CgkJCQkJfQoJCQkJCWZvcihpbnQgaj0wO2o8c2l6ZTtqKyspCgkJCQkJewoJCQkJCQlvYmoyLnB1c2goKChyZW0qYXJyW2pdKStjYXJyeSklMTApOwoJCQkJCQljYXJyeT0oKHJlbSphcnJbal0pK2NhcnJ5KS8xMDsKCQkJCQl9CgkJCQkJaWYoY2Fycnk+MCkKCQkJCQkJb2JqMi5wdXNoKGNhcnJ5KTsKCQkJCQkKCQkJCX0KCQkJCWVsc2UgaWYoaT09MikKCQkJCXsKCQkJCQljYXJyeT0wOwoJCQkJCWZvcihpbnQgaz0wO2s8aTtrKyspCgkJCQkJewoJCQkJCQlvYmozLnB1c2goMCk7CgkJCQkJfQoJCQkJCWZvcihpbnQgaj0wO2o8c2l6ZTtqKyspCgkJCQkJewoJCQkJCQlvYmozLnB1c2goKChyZW0qYXJyW2pdKStjYXJyeSklMTApOwoJCQkJCQljYXJyeT0oKHJlbSphcnJbal0pK2NhcnJ5KS8xMDsKCQkJCQl9CgkJCQkJaWYoY2Fycnk+MCkKCQkJCQkJb2JqMy5wdXNoKGNhcnJ5KTsKCQkJCX0KCQkJCWVsc2UgaWYoaT09MykKCQkJCXsKCQkJCQljYXJyeT0wOwoJCQkJCWZvcihpbnQgaz0wO2s8aTtrKyspCgkJCQkJewoJCQkJCQlvYmo0LnB1c2goMCk7CgkJCQkJfQoJCQkJCWZvcihpbnQgaj0wO2o8c2l6ZTtqKyspCgkJCQkJewoJCQkJCQlvYmo0LnB1c2goKChyZW0qYXJyW2pdKStjYXJyeSklMTApOwoJCQkJCQljYXJyeT0oKHJlbSphcnJbal0pK2NhcnJ5KS8xMDsKCQkJCQl9CgkJCQkJaWYoY2Fycnk+MCkKCQkJCQkJb2JqNC5wdXNoKGNhcnJ5KTsKCQkJCX0KCQkJCQoJCQl9CgkJCWlmKG5vX29mX3N0YWNrcz09MSkKCQkJewoJCQkJcmV0dXJuIG9iajE7CgkJCX0KCQkJZWxzZSBpZihub19vZl9zdGFja3M9PTIpCgkJCXsKCQkJCUlkZW9uZSBvPXJldmVyc2Uob2JqMSk7CgkJCQlJZGVvbmUgcCA9cmV2ZXJzZShvYmoyKTsKCQkJCUlkZW9uZSBtPWFkZGVyKG8scCk7CgkJCQlyZXR1cm4gbTsKCQkJfQoJCQllbHNlIGlmKG5vX29mX3N0YWNrcz09MykKCQkJewoJCQkJSWRlb25lIG89cmV2ZXJzZShvYmoxKTsKCQkJCUlkZW9uZSBwID1yZXZlcnNlKG9iajIpOwoJCQkJSWRlb25lIHg9cmV2ZXJzZShvYmozKTsKCQkJCUlkZW9uZSBtPWFkZGVyKG8scCk7CgkJCQlJZGVvbmUgeT1yZXZlcnNlKG0pOwoJCQkJcmV0dXJuIGFkZGVyKHkseCk7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlJZGVvbmUgbz1yZXZlcnNlKG9iajEpOwoJCQkJSWRlb25lIHAgPXJldmVyc2Uob2JqMik7CgkJCQlJZGVvbmUgeD1yZXZlcnNlKG9iajMpOwoJCQkJSWRlb25lIGM9cmV2ZXJzZShvYmo0KTsKCQkJCUlkZW9uZSBtPWFkZGVyKG8scCk7CgkJCQlJZGVvbmUgeT1yZXZlcnNlKG0pOwoJCQkJbz1hZGRlcih5LHgpOwoJCQkJcD1yZXZlcnNlKG8pOwoJCQkJcmV0dXJuIGFkZGVyKG8sYyk7CgkJCQkKCQkJfQoJCX0KCQlJZGVvbmUgcmV2ZXJzZShJZGVvbmUgbm9kZSkKCQl7CgkJCUlkZW9uZSBuPW5ldyBJZGVvbmUoKTsKCQkJaW50IGw9bm9kZS5zaXplKCk7CgkJCWZvcihpbnQgaT0wO2k8bDtpKyspCgkJCXsKCQkJCW4ucHVzaChub2RlLnRvcCgpKTsKCQkJCW5vZGUucG9wKCk7CgkJCX0KCQkJcmV0dXJuIG47CgkJCQoJCX0KCX0KCgljbGFzcyBJZGVvbmUgeyAKCQlpbnRbXSBzdGFjaz1uZXcgaW50WzI2MDBdOwoJCWludCB0b3A9LTE7CgkJaW50IHNpemUoKQoJCXsKCQkJcmV0dXJuIHRvcCsxOwoJCX0KCQlpbnQgdG9wKCkKCQl7CgkJCXJldHVybiBzdGFja1t0b3BdO30KCQlib29sZWFuIGlzZW1wdHkoKQoJCXsKCQkJaWYodG9wPT0tMSkKCQkJCXJldHVybiB0cnVlOwoJCQllbHNlCgkJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWJvb2xlYW4gaXNmdWxsKCkKCQl7CgkJCWlmKHRvcD09MjU5OSkKCQkJCXJldHVybiB0cnVlOwoJCQllbHNlCgkJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCXZvaWQgcHVzaChpbnQgbikKCQl7CgkJCWlmKCFpc2Z1bGwoKSkKCQkJewoJCQlzdGFja1srK3RvcF09bjsKCQkJfQoJCX0KCQl2b2lkIHBvcCgpCgkJewoJCQlpZighaXNlbXB0eSgpKQoJCQl0b3AtPTE7CgkJfQoJCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZykKCQl7CgkJCVNjYW5uZXIgc2Nhbj1uZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwoJCQlpbnQgbj1zY2FuLm5leHRJbnQoKTsKCQkJSWRlb25lIG9iaj1uZXcgSWRlb25lKCk7CgkJCW9iai5wdXNoKDEpOwoJCQloZWxwZXIgbWU9IG5ldyBoZWxwZXIoKTsKCQkJZm9yKGludCBpPTE7aTw9bjtpKyspCgkJCXsKCQkJCW9iaj1tZS5tdWx0aXBsaWVyKG9iaixpKTsKCQkJCW9iaj1tZS5yZXZlcnNlKG9iaik7CQkJCgkJCX0KCQkJSWRlb25lIGo9bmV3IElkZW9uZSgpOwoJCQlqPW1lLnJldmVyc2Uob2JqKTsKCQkJaW50IGw9ai5zaXplKCk7CgkJCWZvcihpbnQgaT0wO2k8bDtpKyspCgkJCXsKCQkJCVN5c3RlbS5vdXQucHJpbnQoai50b3AoKSk7CgkJCQlqLnBvcCgpOwoJCQl9CgkJCXNjYW4uY2xvc2UoKTsJCgkJfQoJfQoJ