#include <bits/stdc++.h>
using namespace std;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, i = 0, j = 0, k = 0, l = 0, m = 0, a = 0, b = 0, sum = 0, x = 0,
               y = 0, z = 0, c, p = 0;
  cin >> c;
  while (c--) {
    cin >> n;
    long long arr[n], col[n];
    for (i = 0; i < n; i++) {
      cin >> arr[i];
    }
    col[0] = 1;
    for (i = 1; i < n; i++) {
      if (arr[i] == arr[i - 1]) {
        col[i] = col[i - 1];
      } else {
        col[i] = (col[i - 1] % 2) + 1;
      }
    }
    p = 0;
    if (arr[n - 1] != arr[0] && col[n - 1] == col[0]) {
      for (i = 1; i < n; i++) {
        if (col[i] == col[i - 1]) {
          p = -1;
          break;
        }
      }
      if (p == 0) {
        col[n - 1] = 3;
      } else {
        for (j = i; j < n; j++) {
          if (col[j] != col[i]) {
            break;
          }
        }
        col[j - 1] = col[i] % 2 + 1;
        for (i = j; i < n; i++) {
          if (arr[i] == arr[i - 1]) {
            col[i] = col[i - 1];
          } else {
            col[i] = col[i - 1] % 2 + 1;
          }
        }
      }
    }
    set<int> s;
    s.insert(1);
    for (i = 0; i < n; i++) {
      if (s.find(col[i]) == s.end()) {
        s.insert(col[i]);
      }
    }
    cout << s.size() << endl;
    for (i = 0; i < n; i++) {
      cout << col[i] << " ";
    }
    cout << endl;
  }
  return 0;
}
