#include using namespace std; typedef long long ll; #define FOR(i, a, b) for (int i = a; i < (b); i++) #define RFOR(i, a, b) for (int i = a; i >= (b); i--) #define range(a) a.begin(), a.end() #define endl "\n" #define Yes() cout << "Yes" << endl #define No() cout << "No" << endl #define pb push_back int dx[4] = {-1, 0, 1, 0}; int dy[4] = {0, -1, 0, 1}; using P = pair; const long long INFL = LLONG_MAX; const int INFI = INT_MAX; templatebool chmin(T &a, const T &b) { if(a > b) {a = b; return true; } else return false; } templatebool chmax(T &a, const T &b) { if(a < b) {a = b; return true; } else return false; } int main(void){ ios::sync_with_stdio(0); cin.tie(0); int T; cin >> T; while(T--){ int M; cin >> M; vector A(M); FOR(i, 0, M) cin >> A[i]; if(accumulate(range(A), 0) != M || *max_element(range(A)) == 1){ No(); continue; } bool ok = true; FOR(i,0,M-1){ if(A[i] + A[i + 1] == 0 || A[i] + A[i + 1] == 4) ok = false; } if(ok) Yes(); else No(); } return 0; }