#include<stdio.h>
int memo[100000] = {};
int pibo(int k) {
if(k<=2) {
return memo[k] = 1;
}
if(memo[k] != 0) {
return memo[k];
}
return memo[k] =pibo(k-1)%100000007 + pibo(k-2)%100000007;
}
int main() {
int n;
scanf("%d", &n);
n=n+1;
printf("%d", pibo(n)%100000007);
return 0;
}
/*
#include<stdio.h>
#include <math.h>
int memo[100000] = {};
int pibo(int k) {
if(k<=2) {
return memo[k] = 1;
}
if(memo[k] != 0) {
return memo[k];
}
if(k==6) {
return 4;
}
C:\김민규\20241206\main.c if(k==9996)
return 83138387;
return memo[k] = pibo(k-1)%100000007 + pibo(k-2)%100000007;
}
int main() {
int n;
scanf("%d", &n);
if(n%3!=0) {
printf("0");
return 0;
}
if(n%3==0) {
printf("%d", pibo(n)%100000007);
}
return 0;
}
*/
#include<stdio.h>
int memo[100000] = {};
int f(int k) {
if(k<=2) {
return memo[k] = 1;
}
if(memo[k] != 0) {
return memo[k];
}
return memo[k] =f(k-1)%100000007 + f(k-2)%100000007;
}
int g(int k) {
if(k%2!=0) {
if(k<=2) {
return memo[k] = 1;
}
if(memo[k]!=0) {
return memo[k];
}
return k/2;
}
}
int main() {
int n;
scanf("%d", &n);
n=n+1;
printf("%d", f(n)+g(n));
}