#include <iostream>#include <cstdio>#include <memory.h>int main(){ int n , k; while ( scanf("%d%d", &n, &k) && (n || k) ){ if ( 1 == n ){ printf("%dn", k); continue; } char snake[20000]; memset( snake, 0, sizeof(snake) ); int number(0); int mask((1 << ( n - 1 )) - 1); int pos(0), node(0); int i(1), j(mask); for ( ; i != n; ++i ){ snake[j] = 1; j = ( j << 1 )&mask } while (true){ if ( node == mask){ number = ( node << 1 ) + 1; break; } number = ( node << 1 ); if (snake[node]) ++number; snake[node] = (!snake[node]); node = number&mask if ( pos ==k ) break; ++pos; } while ( pos != k ){ number = ( number&mask ) << 1; ++pos; } printf("%dn", number); } return 0;}