#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int maxer=INT_MIN;
int visited[100][100];
int isvalid(int i,int j,int n)
{
if(i<0 || j<0 || i>=n || j>=n)
return 0;
else
return 1;
}
void fun_me(int arr[4][4], int m, int n,int i,int j,int steps,int cost)
{
//cout<<steps<<endl;
if(i>=n || j>=n)
return;
visited[i][j]=1;
if(i==n-1 && steps==m-1)
{
if(maxer<arr[i][j]+cost)
maxer=arr[i][j]+cost;
//cout<<arr[i][j]+cost<<endl;
}
if(isvalid(i+1,j,n) && !visited[i+1][j])
fun_me(arr,m,n,i+1,j,steps+1,cost+arr[i][j]);
if(isvalid(i,j+1,n) && !visited[i][j+1])
fun_me(arr,m,n,i,j+1,steps+1,cost+arr[i][j]);
if(isvalid(i,j-1,n) && !visited[i][j-1])
fun_me(arr,m,n,i,j-1,steps+1,cost+arr[i][j]);
visited[i][j]=0;
return ;
}
int main()
{
int arr[4][4]={{ 1 ,4 ,1 ,20 },
{ 5, 0,2,8 },
{ 6, 8,3,8 },
{ 3, 2,9,5 }};
int m,i,j,k;
for(i=0;i<100;i++)
for(j=0;j<100;j++)
{
visited[i][j]=0;
}
int n=4;
cin>>m;
fun_me(arr,m,4,0,0,0,0);
cout<<maxer<<endl;
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYXhlcj1JTlRfTUlOOwppbnQgdmlzaXRlZFsxMDBdWzEwMF07CgppbnQgaXN2YWxpZChpbnQgaSxpbnQgaixpbnQgbikKewoJaWYoaTwwIHx8IGo8MCB8fCBpPj1uIHx8IGo+PW4pCgkJcmV0dXJuIDA7CgllbHNlCgkJcmV0dXJuIDE7Cn0KCnZvaWQgZnVuX21lKGludCBhcnJbNF1bNF0sIGludCBtLCBpbnQgbixpbnQgaSxpbnQgaixpbnQgc3RlcHMsaW50IGNvc3QpCnsKCgkvL2NvdXQ8PHN0ZXBzPDxlbmRsOwoJaWYoaT49biB8fCBqPj1uKQoJCXJldHVybjsKCXZpc2l0ZWRbaV1bal09MTsKCWlmKGk9PW4tMSAmJiBzdGVwcz09bS0xKQoJewoJCWlmKG1heGVyPGFycltpXVtqXStjb3N0KQoJCQltYXhlcj1hcnJbaV1bal0rY29zdDsKCQkvL2NvdXQ8PGFycltpXVtqXStjb3N0PDxlbmRsOwoJfQoJCglpZihpc3ZhbGlkKGkrMSxqLG4pICYmICF2aXNpdGVkW2krMV1bal0pCgkJZnVuX21lKGFycixtLG4saSsxLGosc3RlcHMrMSxjb3N0K2FycltpXVtqXSk7CgkKCWlmKGlzdmFsaWQoaSxqKzEsbikgJiYgIXZpc2l0ZWRbaV1baisxXSkKCQlmdW5fbWUoYXJyLG0sbixpLGorMSxzdGVwcysxLGNvc3QrYXJyW2ldW2pdKTsKCglpZihpc3ZhbGlkKGksai0xLG4pICYmICF2aXNpdGVkW2ldW2otMV0pCgkJZnVuX21lKGFycixtLG4saSxqLTEsc3RlcHMrMSxjb3N0K2FycltpXVtqXSk7CgkKCXZpc2l0ZWRbaV1bal09MDsKCXJldHVybiA7Cn0KaW50IG1haW4oKQp7CglpbnQgYXJyWzRdWzRdPXt7IDEgLDQgLDEgLDIwIH0sCgkJCSAgICAgCXsgNSwgMCwyLDggfSwKCQkJICAgIAkgeyA2LCA4LDMsOCB9LAoJCQkgICAgIAl7IDMsIDIsOSw1IH19OwoKCWludCBtLGksaixrOwoKCWZvcihpPTA7aTwxMDA7aSsrKQoJCWZvcihqPTA7ajwxMDA7aisrKQoJCQl7CgkJCQl2aXNpdGVkW2ldW2pdPTA7CgkJCX0JCgoJaW50IG49NDsKCWNpbj4+bTsKCWZ1bl9tZShhcnIsbSw0LDAsMCwwLDApOwoJY291dDw8bWF4ZXI8PGVuZGw7CglyZXR1cm4gMDsKfQ==