#include <bits/stdc++.h>
using namespace std;
void ga(int N, int *A) {
  for (int i(0); i < N; i++) scanf("%d", A + i);
}
char s[16];
string dp[256][3][20], Z;
int a;
string dyn(int b, int u, int d) {
  if (d >= 20) return Z;
  string &v = dp[b][u][d], h;
  if (v.size()) return v;
  if (b == 15) return v = "x";
  if (b == 51) return v = "y";
  if (b == 85) return v = "z";
  v = Z;
  if (!u) {
    v = dyn(b, 1, d + 1);
    for (int i(0); i < 256; i++)
      for (int j(0); j < 256; j++)
        if ((i | j) == b) {
          h = dyn(i, 0, d + 1) + "|" + dyn(j, 1, d + 1);
          if (h.size() < v.size() || (h.size() == v.size() && h < v)) v = h;
        }
  }
  if (u == 1) {
    v = dyn(b, 2, d + 1);
    for (int i(0); i < 256; i++)
      for (int j(0); j < 256; j++)
        if ((i & j) == b) {
          h = dyn(i, 1, d + 1) + "&" + dyn(j, 2, d + 1);
          if (h.size() < v.size() || (h.size() == v.size() && h < v)) v = h;
        }
  }
  if (u == 2) {
    v = "!" + dyn(255 & ~b, 2, d + 1);
    h = "(" + dyn(b, 0, d + 1) + ")";
    if (h.size() < v.size() || (h.size() == v.size() && h < v)) v = h;
  }
  return v;
}
int main(void) {
  for (int i(0); i < 28; i++) Z += "|";
  int _;
  scanf("%d", &_);
  for (int i(0); i < _; i++) {
    scanf("%s", s), a = 0;
    for (int i(0); i < 8; i++) a |= (s[7 - i] - 48) << i;
    cout << dyn(a, 0, 0) << endl;
  }
  return 0;
}
