我們將用一種二分法的方式去產生一個數列,先從如下的數列開始:
|
|
將此數列依照水平線做鏡射,接著上半部的數列前面加 0,下半部前面加 1,你將會得到如下數列:
|
|
重覆此步驟,會再一次得到下面 8 個數字所構成的數列:
|
|
這些 2 進位的數字的右側是其對應的數字。
而這些數列分別被稱為 1 位元、2 位元及 3 位元的格雷碼 (Reflected Gray Code,或稱為 Gray Code),一個 n 位元的格雷碼由 $2^n$ 個不同的數字所組成,而此數列上的數字,和其所相鄰的數字都差一個位元。
輸入
第一行為一整數 N (不超過 250000),代表接下來有 N 行測資。接下來的 N 行每行有兩個整數 n ($1\leq{n}\leq{30}$) 及 k ($0\leq{k}\leq{2^n}$)。
輸出
對於每個測資,請輸出在 n 位元上第 k 個位置的格雷碼。
範例輸入
|
|
範例輸出
|
|