/* */ //#pragma comment(linker, "/STACK:16777216") #define _CRT_SECURE_NO_WARNINGS #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define y0 sdkfaslhagaklsldk #define y1 aasdfasdfasdf #define yn askfhwqriuperikldjk #define j1 assdgsdgasghsf #define tm sdfjahlfasfh #define lr asgasgash #define norm asdfasdgasdgsd #define eps 1e-9 #define M_PI 3.141592653589793 #define bs 1000000007 #define bsize 256 using namespace std; const int INF = 1e9; const int N = 500031; int n; long long s[N]; int ar[N]; int ans1, ans2; map memo; set was; int main(){ //freopen("fabro.in","r",stdin); //freopen("fabro.out","w",stdout); //freopen("F:/in.txt", "r", stdin); //freopen("F:/output.txt", "w", stdout); ios_base::sync_with_stdio(0); //cin.tie(0); cin >> n; for (int i = 1; i <= n; i++) { cin >> ar[i]; s[i] = s[i - 1] + ar[i]; s[i] %= n; } for (int i = 0; i <= n; i++) { if (was.find(s[i]) != was.end()) { ans1 = memo[s[i]]; ans2 = i; break; } was.insert(s[i]); memo[s[i]] = i; } cout << ans2 - ans1 << endl; for (int i = ans1 + 1; i <= ans2; i++) { if (i > ans1 + 1) cout << " "; cout << i; } cout << endl; cin.get(); cin.get(); return 0; }