#include <bits/stdc++.h>
using namespace std;
int k,x,y;
int RotD(int x){
if(x==4) return 1;
return x+1;
}
int RotS(int x){
if(x==1) return 4;
return x-1;
}
int Find(int k, int x, int y, int rotire, int val){
//cout << k << ' ' << x << ' ' << y << ' ' << rotire << ' ' << val << ' ' << '\n';
if(k==-1) return val;
if(rotire==1){
if(x<=pow(2,k) && y<=pow(2,k)) return Find(k-1,x,y,RotD(rotire),val);
else if(x>pow(2,k) && y<=pow(2,k)) return Find(k-1,x-pow(2,k),y,rotire,val+pow(4,k));
else if(x>pow(2,k) && y>pow(2,k)) return Find(k-1,x-pow(2,k),y-pow(2,k),rotire,val+2*pow(4,k));
else if(x<=pow(2,k) && y>pow(2,k)) return Find(k-1,x,y-pow(2,k),RotS(rotire),val+3*pow(4,k));
}
else if(rotire==2){
if(x<=pow(2,k) && y<=pow(2,k)) return Find(k-1,x,y,RotS(rotire),val);
else if(x>pow(2,k) && y<=pow(2,k)) return Find(k-1,x-pow(2,k),y,RotD(rotire),val+3*pow(4,k));
else if(x>pow(2,k) && y>pow(2,k)) return Find(k-1,x-pow(2,k),y-pow(2,k),rotire,val+2*pow(4,k));
else if(x<=pow(2,k) && y>pow(2,k)) return Find(k-1,x,y-pow(2,k),rotire,val+pow(4,k));
}
else if(rotire==3){
if(x<=pow(2,k) && y<=pow(2,k)) return Find(k-1,x,y,rotire,val+2*pow(4,k));
else if(x>pow(2,k) && y<=pow(2,k)) return Find(k-1,x-pow(2,k),y,RotS(rotire),val+3*pow(4,k));
else if(x>pow(2,k) && y>pow(2,k)) return Find(k-1,x-pow(2,k),y-pow(2,k),RotD(rotire),val);
else if(x<=pow(2,k) && y>pow(2,k)) return Find(k-1,x,y-pow(2,k),rotire,val+pow(4,k));
}
else if(rotire==4){
if(x<=pow(2,k) && y<=pow(2,k)) return Find(k-1,x,y,rotire,val+2*pow(4,k));
else if(x>pow(2,k) && y<=pow(2,k)) return Find(k-1,x-pow(2,k),y,rotire,val+pow(4,k));
else if(x>pow(2,k) && y>pow(2,k)) return Find(k-1,x-pow(2,k),y-pow(2,k),RotS(rotire),val);
else if(x<=pow(2,k) && y>pow(2,k)) return Find(k-1,x,y-pow(2,k),RotD(rotire),val+3*pow(4,k));
}
}
int main()
{
ifstream in("fractal.in");
ofstream out("fractal.out");
in >> k >> y >> x;
k--;
if(x<=pow(2,k) && y<=pow(2,k)) out << Find(k-1,x,y,RotD(1),0);
else if(x>pow(2,k) && y<=pow(2,k)) out << Find(k-1,x-pow(2,k),y,1,pow(4,k));
else if(x>pow(2,k) && y>pow(2,k)) out << Find(k-1,x-pow(2,k),y-pow(2,k),1,2*pow(4,k));
else if(x<=pow(2,k) && y>pow(2,k)) out << Find(k-1,x,y-pow(2,k),RotS(1),3*pow(4,k));
}