import java.util.*;
public class Main{
public static long[] arr = new long[91];
public static void fun(){
arr[0] = 1;
arr[1] = 1;
arr[2] = 0;
for(int i = 2;i < arr.length;i++){
arr[i] = arr[i - 1] +arr[ i - 2];
}
}
// public static void main(String[] args){
// Scanner sc = new Scanner(System.in);
// while(sc.hasNext()){
// int n = sc.nextInt();
// fun();
// System.out.println(arr[n]);
// }
// }
//方法二:
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
long f0 = 1;
long f1 = 1;
long f2 = 1;
for(int i = 2;i <= n;i++){
f2 = f1 +f0;
f0 = f1;
f1 = f2;
}
System.out.println(f2);
}
}
}
//由题意可知数列为:1 2 3 5 8 13 .。。
//即知该数列为斐波那契数列(从第1项开始的斐波那契)
//解决思路:利用特性:f(n)=f(n-1)+f(n-2);
//即可用迭代法的方法算出第n个斐波那契值,这里为了防止溢出,类型用long
//若long还是溢出,此时应换种思路去解(备注:用java的BigInteger虽然可以得出答案,可消耗了一定的时间复杂度,不建议选)
//思路2:用数组存储斐波那契数列值,用二维数组存储每一行代表第N个数,每一列为f斐波那契值的前几位(采用取模即可)
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
// int n = sc.nextInt();
while(sc.hasNext()){
int t = sc.nextInt();
long sum = 1;
if(t == 1){
System.out.println(sum);
}else{
long a = 1;
long b = 1;
for(int i=2;i<=t;i++){
sum = a + b;
a = b;
b = sum;
}
System.out.println(sum);
}
}
}
} //就是斐波那契数列
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
long[] arr = new long[91];
arr[1] = 1;
arr[2] = 2;
for(int i = 3;i < arr.length;i++){
arr[i] = arr[i-1] + arr[i-2];
}
System.out.println(arr[n]);
}
}
}