#include <cstdio>
using namespace std;
int pas[20];
int solve(int k, int x, int y, int inv)
{
int sol=0;
if(k==1){
if(inv==0){
if(x==1){
if(y==1)
return 0;
else
return 3;
}
else{
if(y==1)
return 1;
else
return 2;
}
}
else{
if(x==1){
if(y==1)
return 3;
else
return 0;
}
else{
if(y==1)
return 2;
else
return 1;
}
}
}
else{
if(inv==0){
if(x<=1<<(k-1) && y<=1<<(k-1))
return sol+solve(k-1, y, (1<<(k-1))+1-x, (inv+1)%2);
else{
sol+=pas[k-1]+1;
if(x>1<<(k-1) && y<=1<<(k-1))
return sol+solve(k-1, x-(1<<(k-1)), y,inv);
else{
sol+=pas[k-1]+1;
if(x>1<<(k-1) && y>1<<(k-1))
return sol+solve(k-1, x-(1<<(k-1)), y-(1<<(k-1)), inv);
else{
sol+=pas[k-1]+1;
return sol+solve(k-1, (1<<(k-1))+1-(y-(1<<(k-1))), x, (inv+1)%2);
}
}
}
}
else{
if(x<=1<<(k-1) && y>1<<(k-1))
return sol+solve(k-1, (1<<(k-1))+1-(y-(1<<(k-1))), x, (inv+1)%2);
else{
sol+=pas[k-1]+1;
if(x>1<<(k-1) && y>1<<(k-1))
return sol+solve(k-1, x-(1<<(k-1)), y-(1<<(k-1)), inv);
else{
sol+=pas[k-1]+1;
if(x>1<<(k-1) && y<=1<<(k-1))
return sol+solve(k-1, x-(1<<(k-1)), y,inv);
else{
sol+=pas[k-1]+1;
return sol+solve(k-1, y, (1<<(k-1))+1-x, (inv+1)%2);
}
}
}
}
}
}
int main()
{ freopen("fractal.in", "r",stdin);
freopen("fractal.out", "w",stdout);
int k,x,y,i;
for(i=1; i<=15; i++)
pas[i]=pas[i-1]*4+3;
scanf("%d%d%d", &k, &y, &x);
printf("%d", solve(k, x, y, 0));
return 0;
}