#include <stdio.h>
#include <stdlib.h>
int v[5]={0,1,3,4,2};
int main()
{
int k,x,y,aux,xst,xdr,rez,xmid,ymid,ydr,pos,yst,i,b1,b2,b3,b4;
freopen("fractal.in","r",stdin);
freopen("fractal.out","w",stdout);
scanf("%d%d%d",&k,&x,&y);
aux=x;
x=y;
y=aux;
xst=1;
xdr=1<<k;
yst=1;
ydr=1<<k;
rez=0;
while(k>0)
{
xmid=(xst+xdr)/2;
ymid=(yst+ydr)/2;
pos=0;
if(x>xmid && y>ymid)
pos=4,xst=xmid+1,yst=ymid+1;
else
if(x>xmid && y<=ymid)
pos=3,xst=xmid+1,ydr=ymid;
else
if(x<=xmid && y>ymid)
pos=2,xdr=xmid,yst=ymid+1;
else
pos=1,xdr=xmid,ydr=ymid;
for(i=1; i<=4 && v[i]!=pos; i++);
rez+=(1<<(k-1))*(1<<(k-1))*(i-1);
switch(i)
{
case 4: b1=v[3]; b2=v[2]; b3=v[1]; b4=v[4];
v[1]=b1; v[2]=b2; v[3]=b3; v[4]=b4;
break;
case 1: b1=v[1]; b2=v[4]; b3=v[3]; b4=v[2];
v[1]=b1; v[2]=b2; v[3]=b3; v[4]=b4;
break;
default: break;
}
k--;
}
printf("%d\n",rez);
return 0;
}