#include <bits/stdc++.h>
using namespace std;
inline void swap(long long &x, long long &y) { x ^= y ^= x ^= y; }
inline bool idigit(char x) { return (x<'0' | x> '9') ? 0 : 1; }
inline long long read() {
  long long num = 0, f = 1;
  char c = 0;
  while (!idigit(c = getchar())) {
    if (c == '-') f = -1;
  }
  while (idigit(c)) num = (num << 1) + (num << 3) + (c & 15), c = getchar();
  return num * f;
}
inline void write(long long x) {
  long long F[20];
  long long tmp = x > 0 ? x : -x;
  if (x < 0) putchar('-');
  long long cnt = 0;
  while (tmp > 0) {
    F[cnt++] = tmp % 10 + '0';
    tmp /= 10;
  }
  while (cnt > 0) putchar(F[--cnt]);
  if (x == 0) putchar('0');
}
long long n, a[1000010], b[1000010], sa[1000010], sb[1000010], l[1000010],
    r[1000010], tot, la, ra, lb, rb;
bool cnt[1000010], ok;
signed main() {
  n = read();
  for (long long i = 1; i <= n; ++i) sa[i] = sa[i - 1] + (a[i] = read());
  for (long long i = 1; i <= n; ++i) sb[i] = sb[i - 1] + (b[i] = read());
  if (ok = ((sa[n] < sb[n]) ? 1 : 0))
    for (long long i = 1; i <= n; ++i) swap(sa[i], sb[i]);
  for (long long i = 0; i <= n; ++i) {
    while (sa[i] >= sb[tot] && tot <= n) ++tot;
    if (cnt[sa[i] - sb[--tot]]) {
      la = l[sa[i] - sb[tot]], lb = r[sa[i] - sb[tot]], ra = i, rb = tot;
      break;
    }
    cnt[sa[i] - sb[tot]] = 1, l[sa[i] - sb[tot]] = i + 1,
                r[sa[i] - sb[tot]] = tot + 1;
  }
  if (ok) swap(la, lb), swap(ra, rb);
  write(ra - la + 1), putchar('\n');
  while (la <= ra) write(la++), putchar(' ');
  putchar('\n'), write(rb - lb + 1), putchar('\n');
  while (lb <= rb) write(lb++), putchar(' ');
  return 0;
}
