Grey Codes

We are going to generate a sequence of integers in binary. Start with the sequence 0 1 — Reflect it in the horizontal line, prepend a zero to the numbers in the top half and a one to the numbers on the bottom and you will get 00 01 11 10 Repeat this again, and you will have 8 numbers 000 0 001 1 011 3 010 2 110 6 111 7 101 5 100 4 The corresponding decimal values are shown on the right. These sequences are called Reflected Gray Codes for 1, 2 and 3 bits respectively. A Gray Code for n bits is a sequence of 2n different n-bit integers with the property that every two neighbouring integers differ in exactly one bit. A Reflected Gray Code is a Gray Code constructed in the way shown above. Input The first line of input gives the number of cases, N (at most 250000). N test cases follow. Each one is alinewith2integers: n(1≤n≤30)andk(0≤k<2n). Output For each test case, output the integer that appears in position k of the n-bit Reflected Gray Code. Gray hair is God’s graffiti. Bill Cosby

2/2 Sample Input 14 10 11 20 21 22 23 30 31 32 33 34 35 36 37 Sample Output 0 1 0 1 3 2 0 1 3 2 6 7 5 4