func_code_string: #include <bits/stdc++.h>   using namespace std;   mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());   struct custom_hash {     static uint64_t splitmix64(uint64_t x) {       x += 0x9e3779b97f4a7c15;       x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;       x = (x ^ (x >> 27)) * 0x94d049bb133111eb;       return x ^ (x >> 31);     }     size_t operator()(uint64_t x) const {       static const uint64_t FIXED_RANDOM =           chrono::steady_clock::now().time_since_epoch().count();       return splitmix64(x + FIXED_RANDOM);     }   };   void _print() { cout <<  ] n ; }   template <typename T, typename... V>   void _print(T t, V... v) {     cout << t;     if (sizeof...(v)) cout <<  ,  ;     _print(v...);   }   using ll = long long int;   using ld = long double;   template <typename T, typename V>   using P = pair<T, V>;   template <typename T>   using V = vector<T>;   constexpr ll MOD = 1e9 + 7;   constexpr ll INF = 0x3f3f3f3f;   constexpr ld PI = 3.1415926535897932384626;   constexpr ld EPS = 1e-9;   constexpr ll MAX = 1e5 + 5;   void solve() {     ll n;     cin >> n;     V<ll> a(n + 1);     for (ll i = (ll)(1); i < (ll)(n + 1); i++) cin >> a[i];     if (a[1]) {       cout << n + 1 <<    ;       for (ll i = (ll)(1); i < (ll)(n + 1); i++) cout << i <<    n [i == n];       return;     } else if (!a[n]) {       for (ll i = (ll)(1); i < (ll)(n + 1); i++) cout << i <<    ;       cout << n + 1 <<   n ;       return;     }     for (ll i = (ll)(1); i < (ll)(n); i++)       if (!a[i] && a[i + 1]) {         for (ll j = (ll)(1); j < (ll)(i + 1); j++) cout << j <<    ;         cout << n + 1 <<    ;         for (ll j = (ll)(i + 1); j < (ll)(n + 1); j++) cout << j <<    n [j == n];         return;       }     cout <<  -1 n ;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(nullptr);     ll t = 1;     cin >> t;     for (ll i = (ll)(1); i < (ll)(t + 1); i++) solve();   }   