#include <bits/stdc++.h>
using namespace std;
string str;
const long long MOD = 1e9 + 7;
template <class T>
inline void amin(T &x, const T &y) {
  if (y < x) x = y;
}
template <class T>
inline void amax(T &x, const T &y) {
  if (x < y) x = y;
}
int read() {
  long long s = 0, f = 1;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    s = s * 10 + c - '0';
    c = getchar();
  }
  return s * f;
}
long long Pow(long long a, long long b) {
  if (a == 1 || b == 1) return a;
  if (b % 2 == 1) return (a * Pow(a, b - 1)) % MOD;
  return (Pow(a, b / 2) * Pow(a, b / 2)) % MOD;
}
long long factorial(long long n) {
  long long ans = 1;
  while (--n) ans = (ans * (n + 1)) % MOD;
  return ans;
}
vector<bool> b(12, 0);
bool binod(int k) {
  bool arr[13][13];
  memset(arr, 0, sizeof(arr));
  int a = 0;
  for (int i = 0; i < k; i++)
    for (int j = 0; j < 12 / k; j++) {
      arr[i][j] = b[a];
      a++;
    }
  a = 0;
  bool d;
  for (int j = 0; j < 12 / k; j++) {
    d = 1;
    for (int i = 0; i < k; i++) {
      if (!arr[i][j]) d = 0;
    }
    if (d) return 1;
  }
  return 0;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t;
  cin >> t;
  while (t--) {
    for (int i = 0; i < 12; i++) {
      char sign;
      cin >> sign;
      if (sign == 'X')
        b[i] = 1;
      else
        b[i] = 0;
    }
    vector<int> v;
    if (binod(1)) v.push_back(1);
    if (binod(2)) v.push_back(2);
    if (binod(3)) v.push_back(3);
    if (binod(4)) v.push_back(4);
    if (binod(6)) v.push_back(6);
    if (binod(12)) v.push_back(12);
    cout << v.size() << " ";
    for (int i = 0; i < v.size(); i++) {
      cout << v[i] << "x" << 12 / v[i] << " ";
    }
    cout << "\n";
  }
  return 0;
}
