#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int dp[5][n+1]; // 1 based indexing
// Let dp[1][x] = get at A and moves remain = n - x
// Let dp[2][x] = get at B and moves remain = n - x
// Let dp[3][x] = get at C and moves remain = n - x
// Let dp[4][x] = get at D and moves remain = n - x
// And at dp[][n-1] when only one move is remain ant shouldn't be at D
// dp[4][0] -> start // dp[4][n] -> End
for(int i=0; i<=n; i++)
{
if(i == 0)
{
dp[1][i] = 0;
dp[2][i] = 0;
dp[3][i] = 0;
dp[4][i] = 1; // from outside to get at D
}
else if (0 < i < n-1)
{
dp[1][i] = dp[2][i-1] + dp[3][i-1] + dp[4][i-1]; // from B,C,D -> ant can get to A
dp[2][i] = dp[1][i-1] + dp[3][i-1] + dp[4][i-1]; // from A,C,D -> ant can get to B
dp[3][i] = dp[1][i-1] + dp[2][i-1] + dp[4][i-1]; // from A,B,D -> ant can get to C
dp[4][i] = dp[1][i-1] + dp[2][i-1] + dp[3][i-1]; // from A,B,C -> ant can get to D
}
// At n-1
else if (i == n-1)
{
// Only thing to take care at 'n-1' ant cannot get at D
dp[1][i] = dp[2][i-1] + dp[3][i-1] + dp[4][i-1];
dp[2][i] = dp[1][i-1] + dp[3][i-1] + dp[4][i-1];
dp[3][i] = dp[1][i-1] + dp[2][i-1] + dp[4][i-1];
}
else if(i == n)
{
// At 'n' ant should be at D
dp[4][i] = dp[1][i-1] + dp[2][i-1] + dp[3][i-1];
}
}
// for(int i=1; i<=4; i++)
// {
// for(int j=0; j<=n; j++)
// cout << dp[i][j] << " ";
// cout << "\n";
// }
cout << dp[4][n] << "\n";
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkKCWludCBuOwoJY2luID4+IG47CglpbnQgZHBbNV1bbisxXTsJLy8gMSBiYXNlZCBpbmRleGluZwoJCgkvLyBMZXQgZHBbMV1beF0gPSBnZXQgYXQgQSBhbmQgbW92ZXMgcmVtYWluID0gbiAtIHgKCS8vIExldCBkcFsyXVt4XSA9IGdldCBhdCBCIGFuZCBtb3ZlcyByZW1haW4gPSBuIC0geAoJLy8gTGV0IGRwWzNdW3hdID0gZ2V0IGF0IEMgYW5kIG1vdmVzIHJlbWFpbiA9IG4gLSB4CgkvLyBMZXQgZHBbNF1beF0gPSBnZXQgYXQgRCBhbmQgbW92ZXMgcmVtYWluID0gbiAtIHgKCS8vIEFuZCBhdCBkcFtdW24tMV0Jd2hlbiBvbmx5IG9uZSBtb3ZlIGlzIHJlbWFpbiBhbnQgc2hvdWxkbid0IGJlIGF0IEQKCS8vIGRwWzRdWzBdIC0+IHN0YXJ0CS8vIGRwWzRdW25dIC0+IEVuZAoKCWZvcihpbnQgaT0wOyBpPD1uOyBpKyspCgl7CgkJaWYoaSA9PSAwKSAKCQl7CgkJCWRwWzFdW2ldID0gMDsKCQkJZHBbMl1baV0gPSAwOwoJCQlkcFszXVtpXSA9IDA7CgkJCWRwWzRdW2ldID0gMTsJLy8gZnJvbSBvdXRzaWRlIHRvIGdldCBhdCBECgkJfQoJCQoJCWVsc2UgaWYgKDAgPCBpIDwgbi0xKQoJCXsKCQkJZHBbMV1baV0gPSBkcFsyXVtpLTFdICsgZHBbM11baS0xXSArIGRwWzRdW2ktMV07CS8vIGZyb20gQixDLEQgLT4gYW50IGNhbiBnZXQgdG8gQQoJCQlkcFsyXVtpXSA9IGRwWzFdW2ktMV0gKyBkcFszXVtpLTFdICsgZHBbNF1baS0xXTsJLy8gZnJvbSBBLEMsRCAtPiBhbnQgY2FuIGdldCB0byBCCgkJCWRwWzNdW2ldID0gZHBbMV1baS0xXSArIGRwWzJdW2ktMV0gKyBkcFs0XVtpLTFdOwkvLyBmcm9tIEEsQixEIC0+IGFudCBjYW4gZ2V0IHRvIEMKCQkJZHBbNF1baV0gPSBkcFsxXVtpLTFdICsgZHBbMl1baS0xXSArIGRwWzNdW2ktMV07CS8vIGZyb20gQSxCLEMgLT4gYW50IGNhbiBnZXQgdG8gRAoJCX0KCQkKCQkvLyBBdCBuLTEgCgkJZWxzZSBpZiAoaSA9PSBuLTEpCgkJewoJCQkvLyBPbmx5IHRoaW5nIHRvIHRha2UgY2FyZSBhdCAnbi0xJyBhbnQgY2Fubm90IGdldCBhdCBECgkJCWRwWzFdW2ldID0gZHBbMl1baS0xXSArIGRwWzNdW2ktMV0gKyBkcFs0XVtpLTFdOwkKCQkJZHBbMl1baV0gPSBkcFsxXVtpLTFdICsgZHBbM11baS0xXSArIGRwWzRdW2ktMV07CgkJCWRwWzNdW2ldID0gZHBbMV1baS0xXSArIGRwWzJdW2ktMV0gKyBkcFs0XVtpLTFdOwoJCX0KCQkKCQllbHNlIGlmKGkgPT0gbikKCQl7CgkJCS8vIEF0ICduJyBhbnQgc2hvdWxkIGJlIGF0IEQKCQkJZHBbNF1baV0gPSBkcFsxXVtpLTFdICsgZHBbMl1baS0xXSArIGRwWzNdW2ktMV07ICAKCQl9Cgl9CgkKCS8vIGZvcihpbnQgaT0xOyBpPD00OyBpKyspCgkvLyB7CgkvLyAJZm9yKGludCBqPTA7IGo8PW47IGorKykKCS8vIAkJY291dCA8PCBkcFtpXVtqXSA8PCAiICI7CgkvLyAJY291dCA8PCAiXG4iOwkKCS8vIH0KCQoJY291dCA8PCBkcFs0XVtuXSA8PCAiXG4iOwoJcmV0dXJuIDA7Cn0=