#include<bits/stdc++.h>
#define ll long long
#define MAX 100005
#define MOD 1000000007
using namespace std;
vector <vector <ll> > m(vector <vector <ll> > a, vector <vector <ll> > b, int Size){
vector <vector <ll> > c(Size, vector<ll>(Size, 0));
for(int i=0; i<Size; i++){
for(int j=0; j<Size; j++){
for(int k=0; k<Size; k++){
c[i][j] += a[i][k]*b[k][j];
c[i][j] %= MOD;
}
}
}
return c;
}
vector <vector <ll> > power(vector <vector <ll> > a, int n, int Size){
vector <vector <ll> > b(Size, vector<ll>(Size, 0));
for(int i=0; i<Size; i++){ // let b = identity matrix
b[i][i] = 1;
}
string s;
while(n>=1){
if(n%2){
s += '1';
}else{
s += '0';
}
n /= 2;
}
for(int i=0; i<s.size(); i++){
if(s[i]=='1'){
b = m(a, b, 2);
}
a = m(a, a, 2);
}
return b;
}
int main(){
vector <vector <ll> > a(2, vector<ll>(2, 0));
a[0][1] = a[1][0] = a[1][1] = 1;
int n;
cin >> n;
cout << power(a, n, 2)[1][1] << endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBNQVggMTAwMDA1CiNkZWZpbmUgTU9EIDEwMDAwMDAwMDcKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZlY3RvciA8dmVjdG9yIDxsbD4gPiBtKHZlY3RvciA8dmVjdG9yIDxsbD4gPiBhLCB2ZWN0b3IgPHZlY3RvciA8bGw+ID4gYiwgaW50IFNpemUpewoKICAgIHZlY3RvciA8dmVjdG9yIDxsbD4gPiBjKFNpemUsIHZlY3RvcjxsbD4oU2l6ZSwgMCkpOwoKICAgIGZvcihpbnQgaT0wOyBpPFNpemU7IGkrKyl7CiAgICAgICAgZm9yKGludCBqPTA7IGo8U2l6ZTsgaisrKXsKICAgICAgICAgICAgZm9yKGludCBrPTA7IGs8U2l6ZTsgaysrKXsKICAgICAgICAgICAgICAgIGNbaV1bal0gKz0gYVtpXVtrXSpiW2tdW2pdOwogICAgICAgICAgICAgICAgY1tpXVtqXSAlPSBNT0Q7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIGM7Cn0KCnZlY3RvciA8dmVjdG9yIDxsbD4gPiBwb3dlcih2ZWN0b3IgPHZlY3RvciA8bGw+ID4gYSwgaW50IG4sIGludCBTaXplKXsKCiAgICB2ZWN0b3IgPHZlY3RvciA8bGw+ID4gYihTaXplLCB2ZWN0b3I8bGw+KFNpemUsIDApKTsKICAgIGZvcihpbnQgaT0wOyBpPFNpemU7IGkrKyl7ICAgLy8gbGV0IGIgPSBpZGVudGl0eSBtYXRyaXgKICAgICAgICBiW2ldW2ldID0gMTsKICAgIH0KCiAgICBzdHJpbmcgczsKCiAgICB3aGlsZShuPj0xKXsKICAgICAgICBpZihuJTIpewogICAgICAgICAgICBzICs9ICcxJzsKICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgcyArPSAnMCc7CiAgICAgICAgfQoKICAgICAgICBuIC89IDI7CiAgICB9CgoKCiAgICBmb3IoaW50IGk9MDsgaTxzLnNpemUoKTsgaSsrKXsKICAgICAgICBpZihzW2ldPT0nMScpewogICAgICAgICAgICBiID0gbShhLCBiLCAyKTsKICAgICAgICB9CgogICAgICAgIGEgPSBtKGEsIGEsIDIpOwogICAgfQoKICAgIHJldHVybiBiOwp9CgppbnQgbWFpbigpewoKCiAgICB2ZWN0b3IgPHZlY3RvciA8bGw+ID4gYSgyLCB2ZWN0b3I8bGw+KDIsIDApKTsKICAgIGFbMF1bMV0gPSBhWzFdWzBdID0gYVsxXVsxXSA9IDE7CgogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIGNvdXQgPDwgcG93ZXIoYSwgbiwgMilbMV1bMV0gPDwgZW5kbDsKfQo=