//#include<stdio.h>
//int main()
//{
// int n, m, k;
// int i, j;
// int x1[1001] = {};
// int y1[1001] = {};
// int x2[1001] = {};
// int y2[1001] = {};
// int u[1001] = {};
// int d[1001][1001] = {};
// int sum[1001][1001] = {};
// scanf("%d %d %d", &n, &m, &k);
// for(i = 1; i <= k; i++)
// {
// scanf("%d %d %d %d %d", &x1[i], &y1[i], &x2[i], &y2[i], &u[i]);
// }
// for(i = 1; i <= k; i++) // d
// {
// d[x1[i]][y1[i]] = d[x1[i]][y1[i]]+u[i];
// d[x2[i]+1][y2[i]+1] = d[x2[i]+1][y2[i]+1]+u[i];
// d[x1[i]][y2[i]+1] = d[x1[i]][y2[i]+1]-u[i];
// d[x2[i]+1][y1[i]] = d[x2[i]+1][y1[i]]-u[i];
// }
//
// sum[0][0] = d[0][0]; // sum
// sum[0][1] = d[0][1];
// sum[1][0] = d[1][0];
// for (i = 1; i <= n; i++)
// {
// for(j = 1; j <= m; j++)
// {
// sum[i][j] = d[i][j] + sum[i][j-1] + sum[i-1][j] - sum[i-1][j-1];
// }
// }
//
// for(i = 0; i < n; i++)
// {
// for(j = 0; j < m; j++)
// {
// printf("%d ", d[i][j]);
// }
// printf("\n");
// }
// printf("\n");
// for(i = 0; i < n; i++)
// {
// for(j = 0; j < m; j++)
// {
// printf("%d ", sum[i][j]);
// }
// printf("\n");
// }
//}
//#include<stdio.h>
//int main()
//{
// int n, m;
// int sum = 0;
// int arr [501][501] = {};
// int i, j;
// int k = 0;
// scanf("%d %d", &n, &m);
// k = 1;
// for(i = m-1; i >= 0; i --)
// {
// for(j = 0; j < n; j++)
// {
// if((m-i)%2==1)
// {
// arr[j][i]=k;
// k++;
// sum++;
// if(sum == n)
// {
// sum = 0;
// k = k +n - 1;
// }
// }
// else
// {
// arr[j][i]=k;
// k--;
// sum++;
// if(sum == n)
// {
// sum = 0;
// k = k + n +1;
// }
// }
// }
// }
// for(i = 0; i < n; i ++)
// {
// for(j = 0; j < m; j++)
// {
// printf("%d ", arr[i][j]);
// }
// printf("\n");
// }
//}
#include <stdio.h>
int memo[2001]= {};
int f(int n)
{
if(memo[n]!=0)
{
return memo[n];
}
if(n==1)
{
return memo[n]=1;
}
else if(n==2)
{
return memo[n]=2;
}
else
{
return memo[n]=(f(n-1)%1000000007+f(n-2)%1000000007)%1000000007;
}
}
int main()
{
int n;
scanf("%d",&n);
printf("%d ",f(n)%1000000007);
return 0;
}