#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; const ld eps = 1e-9; int n,p; ull ai; ull triToP[34]; int sol(int curP, ull from) { //fprintf(stderr, "sol(%d, %lld)\n",curP,from); if (curP == 0) return 1; ull midS = from+triToP[curP-1]; ull midE = from+2*triToP[curP-1]; if (ai >= midS && ai < midE) return 1; if (ai >= midE) return 1+sol(curP-1,midE); return 1+sol(curP-1,from); } void solve() { cout << sol(p,0) << endl; } int main() { freopen("farm.in","r",stdin); freopen("farm.out","w",stdout); scanf("%d %d", &p, &n); triToP[0]=1; for (int i = 1; i < 34; ++i) { triToP[i]=triToP[i-1]*3; } for (int i=0;i> ai;ai--; solve(); } return 0; }