#include <bits/stdc++.h>
using namespace std;
long long int n, k, i, ld;
set<long long int> st;
map<long long int, long long int> mp;
int main() {
  scanf("%lld", &n);
  for (i = 1; i <= n; i++) {
    scanf("%lld", &k);
    ld = i - k;
    if (st.find(ld) == st.end()) {
      mp[ld] = k;
      st.insert(ld);
    } else {
      mp[ld] += k;
    }
  }
  long long int max = 0;
  for (set<long long int>::iterator it = st.begin(); it != st.end(); it++) {
    if (mp[(*it)] > max) {
      max = mp[(*it)];
    }
  }
  printf("%lld", max);
}
