#include<stdio.h>
int n,x,y;
int rec(int k, int x, int y, int lat)
{
if(x==1 && y==1)
return 0;
if(x<=(1<<(k-1)) && y<=(1<<(k-1)))
return rec(k-1,y,x,lat/4);
if(y<=(1<<(k-1)))
return lat/4+rec(k-1,x-(1<<(k-1)),y,lat/4);
if(x>(1<<(k-1)) && y>(1<<(k-1)))
return lat/2+rec(k-1,x-(1<<(k-1)),y-(1<<(k-1)),lat/4);
y=y-(1<<(k-1));
return lat/4*3+rec(k-1,(1<<(k-1))-y+1,(1<<(k-1))-x+1,lat/4);
}
int main()
{
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d%d%d",&n,&y,&x);
printf("%d\n",rec(n,x,y,1<<2*n));
return 0;
}
/* if(k<n)
{
int cx;
cx=y;
y=lat/4-x+1;
x=cx;
}
if(x<=(1<<(k-1)) && y<=(1<<(k-1)))
return rec(k-1,x,y,lat/4);
if(y<=(1<<(k-1)))
return (lat/4)+rec(k-1,y,x-(1<<(k-1)),lat/4);
if(x>(1<<(k-1)) && y>(1<<(k-1)))
return (3*lat/4)+rec(k-1,y-(1<<(k-1)),x-(1<<(k-1)),lat/4);
return (3*lat/4)+rec(k-1,(1<<(k-1))-x+1,(1<<k)-y+1,lat/4);*/