/******************************************************************************
 *  Name:
 *  Login:
 *  Precept:
 * 
 *  Compilation:  javac-introcs FibonacciDynProg.java
 *  Execution:    java-introcs FibonacciDynProg N

 *  Compute the Nth Fibonacci number using dynamic programming.
 * 
 *  % java-introcs FibonacciDynProg 10
 *  55
 *
 *  % java-introcs FibonacciDynProg 20
 *  6765
 *
 ******************************************************************************/

public class FibonacciDynProg {

    public static void main(String[] args) {
        int N = Integer.parseInt(args[0]);
        if (N < 1 || N > 92) {
            throw new RuntimeException("N must be between 1 and 92");
        }

        long[] fib = new long[N+1];

        // base cases
        fib[0] = 0;
        fib[1] = 1;

        // bottom-up dynamic programming
        for (int n = 2; n <= N; n++)
            fib[n] = fib[n-1] + fib[n-2];

        // print results
        System.out.println(fib[N]);

    }
}