import java.util.Scanner;
import java.math.BigInteger;
import java.math.BigDecimal;
public class Main {
public static void main(String[] args)
{
int n=0;
BigInteger temp = (new BigDecimal("10E2005")).toBigInteger();
BigInteger[] f = new BigInteger[7050];
Scanner input = new Scanner(System.in);
f[1] = BigInteger.valueOf(1);
f[2] = BigInteger.valueOf(1);
f[3] = BigInteger.valueOf(1);
f[4] = BigInteger.valueOf(1);
for(int i=5; i<7043; i++)
f[i] = f[i-1].add( f[i-2] ).add(f[i-3]).add(f[i-4]);
while(input.hasNextInt())
{
n = input.nextInt();
System.out.println(f[n]);
}
}
}
n久没有用过java了,沦落到只能基本看懂代码的地步了,囧~~7043是通过temp试出来的,如果写成f[i-1].compareTo(temp) <= 0 会超时