#include <bits/stdc++.h>
using namespace std;
int main() {
  long long t, n, i, j, k;
  cin >> t;
  while (t--) {
    cin >> n;
    long long a[n];
    for (i = 0; i < n; i++) cin >> a[i];
    long long b[n];
    memset(b, 0, sizeof(b));
    b[0] = 1;
    long long o = -1;
    long long cnt = 1;
    for (i = 1; i < n - 1; i++) {
      if (a[i - 1] == a[i]) {
        b[i] = b[i - 1];
        o = i;
      } else {
        if (b[i - 1] == 1)
          b[i] = 2;
        else
          b[i] = 1;
      }
      cnt = max(cnt, b[i]);
    }
    if (a[n - 1] == a[n - 2] && a[n - 1] == a[0])
      b[n - 1] = 1;
    else if (a[n - 1] != a[n - 2]) {
      if (a[n - 1] != a[0]) {
        if (b[n - 2] + b[0] == 3) {
          if (o == -1)
            b[n - 1] = 3;
          else {
            for (j = o; j < n - 1; j++) {
              if (b[j] == 1)
                b[j] = 2;
              else
                b[j] = 1;
            }
            if (b[n - 2] == 2)
              b[n - 1] = 1;
            else
              b[n - 1] = 2;
          }
        } else
          b[n - 1] = 2;
      } else {
        if (b[n - 2] == 1)
          b[n - 1] = 2;
        else
          b[n - 1] = 1;
      }
    } else
      b[n - 1] = 2;
    cnt = max(cnt, b[n - 1]);
    cout << cnt << endl;
    for (i = 0; i < n; i++) cout << b[i] << " ";
    cout << endl;
  }
}
