#include <cstdio>
using namespace std;
int count (int k, int x, int y, int c) {
int v=1<<k-1;
switch (c) {
case 1:
if(k<=0)
return 0;
if(x>v && y<=v)
return 3*v*v+count(k-1, x-v, y, 1);
if(x<=v && y<=v)
return 2*v*v+count(k-1, x, y, 2);
if(x<=v && y>v)
return v*v+count(k-1, x, y-v, 3);
if (x>v && y>v)
return count(k-1, x-v, y-v, 3);
break;
case 2:
if(k<=0)
return 0;
if(x>v && y<=v)
return count(k-1, x-v, y, 1);
if(x<=v && y<=v)
return v*v+count(k-1, x, y, 2);
if(x<=v && y>v)
return 2*v*v+count(k-1, x, y-v, 3);
if (x>v && y>v)
return 3*v*v+count(k-1, x-v, y-v, 3);
break;
case 3:
if(k<=0)
return 0;
if(x>v && y<=v)
return 3*v*v+count(k-1, x-v, y, 1);
if(x<=v && y<=v)
return count(k-1, x, y, 2);
if(x<=v && y>v)
return v*v+count(k-1, x, y-v, 3);
if (x>v && y>v)
return 2*v*v+count(k-1, x-v, y-v, 3);
break;
}
}
int main()
{
int k, x, y;
freopen ("fractal.in", "r+", stdin);
freopen ("fractal.out", "w+", stdout);
scanf ("%d %d %d", &k, &x, &y);
printf ("%d", count (k, x, y, 3));
return 0;
}