#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;
}
