#include <iostream>
#include <vector>
using namespace std;
int gcd(int a, int b){
if(!b) return a;
return gcd(b,a%b);
}
int f(vector<int> &v){ // return v.size() if not possible
int g = 0;
for(int x: v)
g = gcd(x,g);
int i=0;
while(i<v.size())
if(v[i]!=g) break;
else i++;
return i;
}
int main() {
int t,n,x;
vector<int> v;
cin>>t;
while(t--){
cin>>n;
v.clear();
while(n--){
cin>>x;
v.push_back(x);
}
n = v.size();
x = f(v);
cout<<((x==n)?"NO":"YES")<<endl;
if(x!=n){
for(int i=0; i<n; i++)
cout<<((i==x)?"2":"1")<<' ';
cout<<endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGdjZChpbnQgYSwgaW50IGIpewoJaWYoIWIpCXJldHVybiBhOwoJcmV0dXJuIGdjZChiLGElYik7Cn0KCmludCBmKHZlY3RvcjxpbnQ+ICZ2KXsJLy8gcmV0dXJuIHYuc2l6ZSgpIGlmIG5vdCBwb3NzaWJsZQoJaW50IGcgPSAwOwoJZm9yKGludCB4OiB2KQoJCWcgPSBnY2QoeCxnKTsKCWludCBpPTA7Cgl3aGlsZShpPHYuc2l6ZSgpKQoJCWlmKHZbaV0hPWcpCWJyZWFrOwoJCWVsc2UJaSsrOwoJcmV0dXJuIGk7Cn0KCmludCBtYWluKCkgewoJaW50IHQsbix4OwoJdmVjdG9yPGludD4gdjsKCWNpbj4+dDsKCXdoaWxlKHQtLSl7CgkJY2luPj5uOwoJCXYuY2xlYXIoKTsKCQl3aGlsZShuLS0pewoJCQljaW4+Png7CgkJCXYucHVzaF9iYWNrKHgpOwoJCX0KCQluID0gdi5zaXplKCk7CgkJeCA9IGYodik7CgkJY291dDw8KCh4PT1uKT8iTk8iOiJZRVMiKTw8ZW5kbDsKCQlpZih4IT1uKXsKCQkJZm9yKGludCBpPTA7IGk8bjsgaSsrKQoJCQkJY291dDw8KChpPT14KT8iMiI6IjEiKTw8JyAnOwoJCQljb3V0PDxlbmRsOwoJCX0KCX0KCXJldHVybiAwOwp9