//#include<stdio.h>
//
//int sum(int x, int y) {
// return x+ y;
//}
//
//int main() {
// printf("%d", sum(10, 20));
//
// return 0;
//}
//#include <stdio.h>
//
//long long int n;
//
//long long int f(long long int n)
//{
// while (n > 9)
// {
// printf("%lld", n % 10);
// n /= 10;
// }
//
// return n;
//}
//
//int main()
//{
// scanf("%lld", &n);
// printf("%lld\n", f(n));
//
// return 0;
//}
//#include<stdio.h>
//
//void rec(int n) {
// if(n==0) {
// return;
// }
// rec(n-1);
// rec(n-2);
// // non-linearity
// printf("%d\n", n);
//}
//
//int main() {
// int n;
//
// scanf("%d", &n);
//
// rec(n);
//
// return 0;
//}
//#include <stdio.h>
//
//void f(int n)
//{
// if(n == 0)
// {
// return;
// }
//
// f(n - 1);
// printf("%d\n", n);
//
//}
//
//int main(void)
//{
// int n;
// scanf("%d", &n);
//
// f(n);
//
// return 0;
//}
//#include <stdio.h>
//
//void f(int n)
//{
// if(n == 0)
// {
// return;
// }
//
// printf("%d\n", n);
// f(n - 1);
//}
//
//
//
//int main(void)
//{
// int n;
// scanf("%d", &n);
// f(n);
//
// return 0;
//}
//
//#include <stdio.h>
//
//int f(int n)
//{
// if(n==1) {
// return 1;
// }
// return n + f(n-1);
// // 5 + f(4)
// // 4 + f(3)
//}
//
//
//int main(void)
//{
// int n;
// scanf("%d", &n);
//
// printf("%d", f(n));
//
// return 0;
//}
//#include <stdio.h>
//
//int f(int n)
//{
// if(n == 1)
// {
// return 1;
// }
//
// return n * f(n - 1);
//}
//
//int main(void)
//{
// int n;
// scanf("%d", &n);
//
// printf("%d\n", f(n));
//}
//
//#include <stdio.h>
//
//int f(int n)
//{
// if(n == 1 || n == 2)
// {
// return 1;
// }
//
// return f(n - 2) + f(n - 1);
//}
//
//
//int main(void)
//{
// int n;
// scanf("%d", &n);
// printf("%d\n", f(n));
//
//}
//#include <stdio.h>
//
//int array[201] = {0};
//
//long long int f(int n)
//{
// if(n == 1 || n == 2)
// {
// array[n] = 1;
// return 1;
// }
//
// else if(array[n] != 0)
// {
// return array[n];
// }
// else {
// return array[n] = (f(n - 2) + f(n - 1)) %10009;
// }
//}
//
//int main(void)
//{
// long long int n;
// scanf("%lld", &n);
// printf("%lld\n", f(n));
//
//}
//#include <stdio.h>
//
//int array[51][51] = {0};
//
//int f(int r, int c)
//{
// if(r == 1 || c == 1)
// {
// return array[r][c] = 1;
// }
//
// else if(array[r][c] != 0)
// {
// return array[r][c];
// }
//
// else {
// return array[r][c] = (f(r - 1, c) + f(r, c - 1)) % 100000000;
// }
//}
//
//
//int main(void)
//{
// int r, c;
// scanf("%d %d", &r, &c);
//
// printf("%d\n", f(r, c));
//
// return 0;
//}
//#include <stdio.h>
//
//int array[100001] = {1, 1, 2};
//
//int f(int n)
//{
// if(n == 1)
// {
// return 1;
// }
// else if(array[n] != 0)
// {
// return array[n];
// }
// else {
// return array[n] = (f(n - 1) + f(n - 2) + f(n - 3)) % 1000;
// }
//}
//
//int main(void)
//{
// int n;
// scanf("%d", &n);
//
// printf("%d", f(n));
//
// return 0;
//}
//
//
//
//
//
//
#include <stdio.h>
int array[10001];
int f(int n)
{
if(n == 1)
{
return 1;
}
else if(n == 2)
{
return 2;
}
else if(array[n] == 0)
{
return array[n] = (f(n - 1) + f(n - 2)) % 100000007;
}
else {
return array[n];
}
}
int main(void)
{
int n;
scanf("%d", &n);
printf("%d\n", f(n));
return 0;
}