func_code_string: #include <bits/stdc++.h>   using namespace std;   const int int_inf = 0x7fffffff;   const long long ll_inf = ~(1ll << 63);   const double eps = 1e-7;   char *p1, *p2, buf[1 << 20];   inline int read() {     int f = 1, x = 0;     char ch;     while (!isdigit(         ch = (p1 == p2 &&                       (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2)                   ? EOF                   : *p1++)))       if (ch ==  - ) f = -1;     x = ch -  0 ;     while (isdigit(         ch = (p1 == p2 &&                       (p2 = (p1 = buf) + fread(buf, 1, 1 << 20, stdin), p1 == p2)                   ? EOF                   : *p1++)))       x = x * 10 + ch -  0 ;     return x * f;   }   const int N = 1e6 + 10;   unordered_map<long long, int> m;   long long sa[N], sb[N];   int a[N], b[N], s[N], n;   int main() {     n = read();     for (int i = 1; i <= n; i++) a[i] = read(), sa[i] = sa[i - 1] + a[i];     for (int i = 1; i <= n; i++) b[i] = read(), sb[i] = sb[i - 1] + b[i];     m[0] = 0;     for (int i = 1; i <= n; i++) {       int p = s[i - 1];       while (sb[p] <= sa[i] && p <= n) p++;       s[i] = p - 1;       long long delt = sa[i] - sb[p - 1];       if (m.count(delt)) {         int x = m[delt];         cout << (i - x) << endl;         for (int j = x + 1; j <= i; j++) cout << j <<    ;         cout << endl;         cout << (s[i] - s[x]) << endl;         for (int j = s[x] + 1; j <= s[i]; j++) cout << j <<    ;         return 0;       }       m[delt] = i;     }     cout << -1;     return 0;   }   