#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int Mod=998244353;
const ll INF = -10000000000000;
void solve() {
int n;
cin >> n;
vector<ll> a(n+1);
for(int i = 1; i <= n; i++) cin >> a[i];
unordered_map<ll, vector<ll>> mp;
for(int i = 2; i <= n; i++){
ll need = a[i] + i - 1;
ll gain = i - 1;
mp[need].push_back(need + gain);
}
ll best = n;
unordered_set<ll> seen;
queue<ll> q;
q.push(n);
seen.insert(n);
while(!q.empty()){
ll L = q.front();
q.pop();
best = max(best, L);
auto it = mp.find(L);
if(it == mp.end()) continue;
for(ll nxt : it->second){
if(seen.insert(nxt).second){
q.push(nxt);
}
}
mp.erase(it);
}
cout << best << "\n";
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int t;
cin >> t;
while (t--) solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpjb25zdCBpbnQgTW9kPTk5ODI0NDM1MzsKY29uc3QgbGwgSU5GID0gLTEwMDAwMDAwMDAwMDAwOwoKdm9pZCBzb2x2ZSgpIHsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICB2ZWN0b3I8bGw+IGEobisxKTsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsKCiAgICB1bm9yZGVyZWRfbWFwPGxsLCB2ZWN0b3I8bGw+PiBtcDsKICAgIGZvcihpbnQgaSA9IDI7IGkgPD0gbjsgaSsrKXsKICAgICAgICBsbCBuZWVkID0gYVtpXSArIGkgLSAxOwogICAgICAgIGxsIGdhaW4gPSBpIC0gMTsKICAgICAgICBtcFtuZWVkXS5wdXNoX2JhY2sobmVlZCArIGdhaW4pOwogICAgfQoKICAgIGxsIGJlc3QgPSBuOwogICAgdW5vcmRlcmVkX3NldDxsbD4gc2VlbjsKICAgIHF1ZXVlPGxsPiBxOwogICAgcS5wdXNoKG4pOwogICAgc2Vlbi5pbnNlcnQobik7CgogICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgbGwgTCA9IHEuZnJvbnQoKTsgCiAgICAgICAgcS5wb3AoKTsKICAgICAgICBiZXN0ID0gbWF4KGJlc3QsIEwpOwoKICAgICAgICBhdXRvIGl0ID0gbXAuZmluZChMKTsKICAgICAgICBpZihpdCA9PSBtcC5lbmQoKSkgY29udGludWU7CgogICAgICAgIGZvcihsbCBueHQgOiBpdC0+c2Vjb25kKXsKICAgICAgICAgICAgaWYoc2Vlbi5pbnNlcnQobnh0KS5zZWNvbmQpewogICAgICAgICAgICAgICAgcS5wdXNoKG54dCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgbXAuZXJhc2UoaXQpOwogICAgfQoKICAgIGNvdXQgPDwgYmVzdCA8PCAiXG4iOwp9CiAgICAgICAgCmludCBtYWluKCl7IAogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCQogICAgaW50IHQ7CiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pIHNvbHZlKCk7CiAgICAKCiAgICByZXR1cm4gMDsKfQo=