#include using namespace std; #define ll long long #define ld long double #define pb push_back #define mp make_pair #define pii pair #define pll pair #define pdd pair #define all(x) (x).begin(), (x).end() #define fi first #define se second pii a[500005]; unordered_map m; int main() { srand(time(0)); cin.sync_with_stdio(false); int n; scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d", &a[i].fi); a[i].fi %= n; a[i].se = i; } sort(a + 1, a + n + 1); int sum = 0; m[0] = 0; for (int i = 1; i <= n; i++) { int x = a[i].fi; sum = (sum + x) % n; if (m.count(sum)) { int mlc = m[sum]; printf("%d\n", i - mlc); for (int j = mlc + 1; j <= i; j++) { printf("%d ", j); } return 0; } m[sum] = i; } for (int c = 1; c <= 3; c++) { m.clear(); int sum = 0; m[0] = 0; random_shuffle(a + 1, a + n + 1); for (int i = 1; i <= n; i++) { int x = a[i].fi; sum = (sum + x) % n; if (m.count(sum)) { int mlc = m[sum]; printf("%d\n", i - mlc); for (int j = mlc + 1; j <= i; j++) { printf("%d ", a[j].se); } return 0; } m[sum] = i; } } return 0; }