#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//在使用 fib 这个函数的时候如果我们要计算第50个斐波那契数字的时候特别耗费时间
//使用 fac 函数求10000的阶乘(不考虑结果的正确性),程序会崩溃
//int fib(int n)
//{
// int result;
// int pre_result;
// int next_older_result;
// result = pre_result = 1;
// while (n > 2)
// {
// n -= 1;
// next_older_result = pre_result;
// pre_result = result;
// result = pre_result + next_older_result;
// }
// return result;
//}

////int fib(int n)
////{
//// if (n <= 2)
//// return 1;
//// else
//// return fib(n - 1) + fib(n - 2);
////}
int fib(int n)
{
int a = 1;
int b = 1;
int c = 1;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}
int main()
{
int n = 0;
int ret = 0;
scanf("%d ", &n);
ret=fib(n);
printf("%d\n", ret);
return 0;
}//int Fac1(int n)
//{
// int i = 0;
// int ret = 1;
// for (i = 0; i <= n; i++)
// {
// ret *= i;
//
// }
// return ret;
//}
//int Fac2(int n)
//{
// if (n <= 1)
// return 1;
// else
// return n * Fac2(n - 1);
//}
//
//int main()
//{
// int n = 0;
// int ret = 0;
// scanf("%d ", &n);
// ret=Fac2(n);
// printf("%d\n", ret);
// return 0;
//}
//void print(int n)
//{
// if (n > 9)
// {
// print(n / 10);
// }
// printf("%d ", n % 10);
//}
//int main()
//{
// unsigned num = 0;
// scanf("%d",&num);
// //递归
// print(num);
// //printf("呵呵\n");
// //main();
// ////printf("%d", 32);
// return 0;
//}