#include int done[14][14][14][14][53][2],memo[14][14][14][14][53][2]; int M; int max(int a,int b){if(a>b){return a;}else{return b;}} int min(int a,int b){if(ai){ w = max(dp(a-i,b,c,d,h+i,1),w); } if(a==i){ w = max(dp(0,b,c,d,h+i+(M-a-b-c-d-h+1)/2,1),w); } } for(i=1;i<=3;i++){ if(b>i){ w = max(dp(a,b-i,c,d,h+i,1),w); } if(b==i){ w = max(dp(a,0,c,d,h+i+(M-a-b-c-d-h+1)/2,1),w); } } for(i=1;i<=3;i++){ if(c>i){ w = max(dp(a,b,c-i,d,h+i,1),w); } if(c==i){ w = max(dp(a,b,0,d,h+i+(M-a-b-c-d-h+1)/2,1),w); } } for(i=1;i<=3;i++){ if(d>i){ w = max(dp(a,b,c,d-i,h+i,1),w); } if(d==i){ w = max(dp(a,b,c,0,h+i+(M-a-b-c-d-h+1)/2,1),w); } } memo[a][b][c][d][h][t] = w; } if(t==1){ w = 1; for(i=1;i<=3;i++){ if(a>i){ w = min(dp(a-i,b,c,d,h,0),w); } if(a==i){ w = min(dp(0,b,c,d,h/2,0),w); } } for(i=1;i<=3;i++){ if(b>i){ w = min(dp(a,b-i,c,d,h,0),w); } if(b==i){ w = min(dp(a,0,c,d,h/2,0),w); } } for(i=1;i<=3;i++){ if(c>i){ w = min(dp(a,b,c-i,d,h,0),w); } if(c==i){ w = min(dp(a,b,0,d,h/2,0),w); } } for(i=1;i<=3;i++){ if(d>i){ w = min(dp(a,b,c,d-i,h,0),w); } if(d==i){ w = min(dp(a,b,c,0,h/2,0),w); } } memo[a][b][c][d][h][t] = w; } done[a][b][c][d][h][t] = 1; return memo[a][b][c][d][h][t]; } int main(void){ int N[4]; int i,j,k,l,m,n; scanf("%d %d %d %d",&N[0],&N[1],&N[2],&N[3]); M = N[0]+N[1]+N[2]+N[3]; for(i=0;i<=N[0];i++){ for(j=0;j<=N[1];j++){ for(k=0;k<=N[2];k++){ for(l=0;l<=N[3];l++){ for(m=0;m<=M;m++){ for(n=0;n<=1;n++){ done[i][j][k][l][m][n] = 0; } } } } } } for(i=0;i<=M;i++){ done[0][0][0][0][i][0] = 1; done[0][0][0][0][i][1] = 1; if(i