#include <bits/stdc++.h>
using namespace std;
int k,x,y;
ifstream fin("fractal.in");
ofstream fout("fractal.out");
int hilbert(int x, int y, int ord, int offset = 0){
if(ord == 0){
return offset;
}
int mid = 1<<(ord-1);
int cadran = 0;
if(x <= mid && y <= mid){
cadran = 0;
swap(x, y);
}else if(x > mid && y <= mid){
cadran = 1;
x -= mid;
}else if(x > mid && y > mid){
cadran = 2;
x -= mid;
y -= mid;
}else if(x <= mid && y > mid){
cadran = 3;
y -= mid;
swap(x, y);
x = (mid - x) + 1;
y = (mid - y) + 1;
}
int area = (1<<(ord-1)) * (1<<(ord-1));
return hilbert(x, y, ord-1, area * cadran + offset);
}
int main() {
fin >> k >> y >> x;
fout << hilbert(x, y, k);
return 0;
}