#include <bits/stdc++.h>
using namespace std;
long long m, n, arr[400004], ans[200002], b, q, y, x;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cin >> q;
  for (int l = 0; l < q; l++) {
    cin >> n;
    for (int i = 0; i < n; i++) cin >> arr[i];
    arr[n] = arr[0];
    ans[0] = 1;
    for (int i = 1; i < n; i++) {
      if (arr[i - 1] == arr[i])
        ans[i] = ans[i - 1];
      else {
        if (ans[i - 1] == 1)
          ans[i] = 2;
        else
          ans[i] = 1;
      }
    }
    if (ans[n - 1] == ans[0] && arr[0] != arr[n - 1]) {
      if (arr[n - 1] == arr[n - 2]) {
        if (ans[0] == 1)
          ans[n - 1] = 2;
        else
          ans[n - 1] = 1;
      } else {
        int yy = 0;
        int uu = n - 1;
        for (int i = n - 2; i >= 0; i--) {
          if (ans[i] == ans[i - 1]) {
            uu = i;
            yy = 1;
            break;
          }
        }
        for (int i = n - 1; i >= uu; i--) {
          if (ans[i] == 1)
            ans[i] = 2;
          else
            ans[i] = 1;
        }
        if (yy == 0) {
          set<int> s = {1, 2, 3};
          s.erase(ans[n - 2]);
          if (s.find(ans[0]) != s.end()) s.erase(ans[0]);
          ans[n - 1] = *s.begin();
        }
      }
    }
    m = 0;
    for (int i = 0; i < n; i++) m = max(ans[i], m);
    cout << m << '\n';
    for (int i = 0; i < n; i++) cout << ans[i] << ' ';
    cout << '\n';
  }
}
