#include <bits/stdc++.h>
using namespace std;
long long t, n, x, y;
int tmp[3];
long long calc2(long long x, long long t) {
  if (t == 1) {
    return 0;
  }
  long long nt = t / 4;
  if (x < nt) {
    return calc2(x, nt);
  }
  if (x < nt * 2) {
    return calc2(x - nt, nt) + 2 * nt;
  }
  if (x < nt * 3) {
    return calc2(x - nt * 2, nt) + 3 * nt;
  }
  if (x < nt * 4) {
    return calc2(x - nt * 3, nt) + 1 * nt;
  }
}
long long calc3(long long x, long long t) {
  if (t == 1) {
    return 0;
  }
  long long nt = t / 4;
  if (x < nt) {
    return calc3(x, nt);
  }
  if (x < nt * 2) {
    return calc3(x - nt, nt) + 3 * nt;
  }
  if (x < nt * 3) {
    return calc3(x - nt * 2, nt) + 1 * nt;
  }
  if (x < nt * 4) {
    return calc3(x - nt * 3, nt) + 2 * nt;
  }
}
int main() {
  scanf("%lld", &t);
  while (t--) {
    scanf("%lld", &n);
    x = (n - 1) / 3;
    y = (n - 1) % 3 + 1;
    long long t = 1, v = 1;
    while (v <= x) {
      x -= v;
      v *= 4;
      t++;
    }
    long long ans = y * v;
    if (y == 1) {
      ans += x;
    }
    if (y == 2) {
      ans += calc2(x, v);
    }
    if (y == 3) {
      ans += calc3(x, v);
    }
    printf("%lld\n", ans);
  }
  return 0;
}
