#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int t;
  cin >> t;
  while (t--) {
    long long int n, i, f = 0;
    cin >> n;
    long long int a[n];
    for (i = 0; i < n; i++) {
      cin >> a[i];
      if (a[i] != a[0]) {
        f = 1;
      }
    }
    if (f == 0) {
      cout << 1 << endl;
      for (i = 0; i < n; i++) {
        cout << 1 << " ";
      }
    } else {
      long long int ans[n];
      if (n % 2 == 0) {
        cout << 2 << endl;
        long long int curr = 0;
        for (i = 0; i < n; i++) {
          ans[i] = 1 + curr;
          curr = 1 - curr;
        }
      } else {
        long long int f = 0, l, r;
        for (i = 0; i < n; i++) {
          if (a[i] == a[(i + 1) % n]) {
            f = 1;
            l = i;
            r = (i + 1) % n;
            break;
          }
        }
        if (f == 0) {
          long long int curr = 0;
          cout << 3 << endl;
          for (i = 0; i < (n - 1); i++) {
            ans[i] = 1 + curr;
            curr = 1 - curr;
          }
          ans[n - 1] = 3;
        } else {
          long long int curr = 0;
          cout << 2 << endl;
          if (l == (n - 1)) {
            for (i = 0; i < (n - 1); i++) {
              ans[i] = 1 + curr;
              curr = 1 - curr;
            }
            ans[n - 1] = ans[0];
          } else {
            for (i = 0; i < n; i++) {
              if (i == r) {
                ans[i] = ans[l];
                continue;
              } else {
                ans[i] = 1 + curr;
                curr = 1 - curr;
              }
            }
          }
        }
      }
      for (i = 0; i < n; i++) {
        cout << ans[i] << " ";
      }
      cout << endl;
    }
  }
}
