#include <bits/stdc++.h>
using namespace std;
vector<string> v;
int main() {
  int t, i, j;
  cin >> t;
  int k = 0;
  for (i = 0; i < t; i++) {
    string a;
    cin >> a;
    int k = a.size();
    int p = 0;
    for (j = 0; j < k; j++) {
      if (a[j] == 'X') {
        v.push_back(" 1x12");
        p++;
        break;
      }
    }
    int f = 0;
    for (j = 0; j < 6; j++)
      if (a[j] == a[j + 6] && a[j] == 'X') {
        f = -1;
        break;
      }
    if (f == -1) {
      p++;
      v.push_back(" 2x6");
    }
    for (j = 0; j < 4; j++) {
      f = 0;
      int l = j, m = 0;
      while (m != 3) {
        if (a[l] == 'X') f++;
        l += 4;
        m++;
      }
      if (f == 3) {
        p++;
        v.push_back(" 3x4");
        break;
      }
    }
    for (j = 0; j < 3; j++) {
      int l = j, m = 0;
      f = 0;
      while (m != 4) {
        if (a[l] == 'X') f++;
        l += 3;
        m++;
      }
      if (f == 4) {
        v.push_back(" 4x3");
        p++;
        break;
      }
    }
    int f1 = 0, f2 = 0;
    j = 0;
    while (j < k) {
      if (a[j] == 'X') f1++;
      j += 2;
    }
    j = 1;
    while (j < k) {
      if (a[j] == 'X') f2++;
      j += 2;
    }
    if (f1 == 6 || f2 == 6) {
      p++;
      v.push_back(" 6x2");
    }
    f = 0;
    for (j = 0; j < k; j++)
      if (a[j] == 'X') f++;
    if (f == k) {
      v.push_back(" 12x1");
      p++;
    }
    cout << p;
    for (j = 0; j < v.size(); j++) {
      cout << v[j];
      v[j].clear();
    }
    cout << endl;
  }
  return 0;
}
