#include <bits/stdc++.h>
using namespace std;
#define all(nums) nums.begin(), nums.end()
#define allr(nums) nums.rbegin(), nums.rend()
#define len(a) int((a).size())
typedef long long int ll;
const ll inf = INT32_MAX;
const ll minf = INT32_MIN;
typedef vector<vector<int>> graph;
template<class T>T cal(T n) {return (n*1ll*(n-1))/2;}
template<class T>T mx(T begin, T end){return max_element(begin, end);}
template<class T>T mn(T begin, T end){return min_element(begin, end);}
template<class T>void getUnique(vector<T>& nums){sort(nums.begin(), nums.end()); nums.erase(unique(nums.begin(), nums.end()), nums.end());}
template<class T>void print(vector<T>nums){for(T i:nums)cout<<i<<" ";cout<<"\n";}
template<class T>void read(vector<T>&nums){for(T& i:nums)cin>>i;}

int check(vector<int>a, int start) {
    
    for (int i=start; i<len(a)-1; ++i) {
        if (a[i]+1>=a[i+1]) {
            return a[i+1];
            break ;
        }
    }
    return -1 ;
}
signed main()
{
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    ll t = 1;
    cin>>t;
    while (t--) {
        string s;
        cin>>s;
        vector<int>a, b;
        for (int i=0; i<len(s); ++i) {
            if (s[i] == '1')    a.push_back(i);
            else b.push_back(i);
        }
        if (!!len(a) ^ !!len(b)) {
            cout<<"YES";
        } else if (check(a, 0) == -1 || check(b, 0) == -1) {
            cout<<"YES";
        } else {
            int till = check(a, 0);
            int index = upper_bound(all(b), till)-b.begin();
            if (check(b, index) == -1) {
                cout<<"YES";
            } else {
                cout<<"NO";
            }
        }
        cout<<"\n";
    }
    return 0;
}