// 1¹ø ¹®Á¦ : ºû Ã»»ê (914)

// 2¹ø ¹®Á¦ : ¼Ò¼öÀÇ ¼ö¿Í ÇÕ ±¸ÇÏ±â (1059 : µî·Ï¿¹Á¤)
/*
#include <cstdio>
bool isPrime(int k)
{
    for(int i = 2 ; i*i <= k ; i++ )
        if( k%i == 0 ) return false;
    return (k!=1);
}

int main()
{
    freopen(".10.in","r",stdin);
    freopen(".10.out","w",stdout);
    int a, b, max = 0, min = 987654321, cnt = 0;
    scanf("%d%d",&a,&b);
    if( a > b ) a^=b^=a^=b;
    for(int i = a ; i <= b ; i++ )
        if(isPrime(i)) cnt++, min = min>i?i:min, max = max<i?i:max;
    printf("%d\n%d\n", cnt, min+max);
    return 0;
}
*/

// 3¹ø ¹®Á¦ : »öÁ¾ÀÌ 2 (320)

// 4¹ø ¹®Á¦ : Àü±¸ Á¶ÀÛ (1060 : µî·Ï¿¹Á¤)
/*
#include <cstdio>

int n, m, A[101][101], a, b, dx[4] = {0,1,0,-1}, dy[4] = {1,0,-1,0};

bool inside(int a, int b){ return (0 <= a&&a < n)&&(0 <= b&&b < m); }

void solve(int a, int b, int c)
{
    A[a][b] = 2;
    for(int i = 0 ; i < 4 ; i++ )
        if( inside(a+dx[i], b+dy[i]) && A[a+dx[i]][b+dy[i]] == c )
            solve(a+dx[i], b+dy[i], c);
}

int main()
{
    freopen(".10.in","r", stdin);
    freopen(".10.out","w",stdout);
    scanf("%d%d",&n,&m);
    for(int i = 0 ; i < n ; i++ )
        for(int j = 0 ; j < m ; j++ )
            scanf("%d", &A[i][j]);
    for(int i = 0 ; i < n ; i++ )
        for(int j = 0 ; j < m ; j++ )
            if( A[i][j] == 0 ) a++, solve(i, j, 0);
            else if( A[i][j] == 1 ) b++, solve(i, j, 1);
    printf("%d\n%d\n", a, b);
}

/*

5 6
0 0 1 0 1 1
0 1 1 0 0 0
0 0 1 0 0 0
1 1 1 1 1 1
0 0 0 1 0 0
*/


// 5¹ø ¹®Á¦ : °è´Ü¿À¸£±â 2 (1061 : µî·Ï¿¹Á¤)
// °è´ÜÀ» ÇÑ Ä­ È¤Àº µÎ Ä­ È¤Àº ¼¼ Ä­À» °¥ ¼ö ÀÖ´Âµ¥.. ¼¼ Ä­À» ¿Ã¶ó°¡¸é Èûµé¾î¼­ ´ÙÀ½ 2¹øÀÇ ÀÌµ¿Àº ¼¼ Ä­À» ÀÌµ¿ÇÒ ¼ö ¾ø´Ù. ÃÖ´ë nÀº 10,000
// °æ¿ìÀÇ ¼ö¸¦ 1,000,000,007·Î ³ª´«°ªÀ» ±¸ÇÏ½Ã¿À.

#include <cstdio>
#define MOD 1000000007
int n, DT[10001][3];

int f(int a, int b)
{
    if( b > 2 ) b = 2;
    if( a > n ) return 0;
    if( a == n ) return 1;
    if( DT[a][b] == 0 )
    {
        DT[a][b] = (f(a+1, b+1) + f(a+2, b+1)) % MOD;
        if( b == 2 ) DT[a][b] += f(a+3, 0), DT[a][b]%=MOD;
    }
    return DT[a][b];
}

int main()
{
    freopen(".16.in","r",stdin);
    freopen(".16.out","w",stdout);
    scanf("%d", &n);
    printf("%d", f(0, 2));
}

