#include <bits/stdc++.h>
using namespace std;
long long bucket[1000006], pos[1000006];
long long suma[1000006], sumb[1000006];
long long *a, *b;
int n;
inline int getint() {
  int x = 0, p = 1;
  char c = getchar();
  while (!isdigit(c)) {
    if (c == '-') p = -1;
    c = getchar();
  }
  while (isdigit(c)) {
    x = (x << 3) + (x << 1) + (c ^ '0');
    c = getchar();
  }
  return x * p;
}
inline void putint(int x) {
  if (x < 0) {
    putchar('-');
    x = -x;
  }
  static int buf[20];
  int tot = 0;
  do {
    buf[tot++] = x % 10;
    x /= 10;
  } while (x);
  while (tot) putchar(buf[--tot] + '0');
}
int main() {
  a = suma, b = sumb;
  n = getint();
  for (int i = 1; i <= n; ++i) {
    a[i] = a[i - 1] + getint();
  }
  for (int i = 1; i <= n; ++i) {
    b[i] = b[i - 1] + getint();
  }
  bool f = 0;
  if (a[n] > b[n]) swap(a, b), f = 1;
  int p = 0;
  pos[0] = 0;
  memset(bucket, -1, sizeof(bucket));
  bucket[0] = 0;
  for (int i = 1; i <= n; ++i) {
    while (p <= n && b[p + 1] <= a[i]) ++p;
    pos[i] = p;
    if (bucket[a[i] - b[p]] == -1) {
      bucket[a[i] - b[p]] = i;
    } else {
      int xa = bucket[a[i] - b[p]], ya = i, xb = pos[xa], yb = p;
      if (f) swap(xa, xb), swap(ya, yb);
      putint(ya - xa), putchar('\n');
      for (int j = xa + 1; j <= ya; ++j) {
        putint(j), putchar(' ');
      }
      putchar('\n');
      putint(yb - xb), putchar('\n');
      for (int j = xb + 1; j <= yb; ++j) {
        putint(j), putchar(' ');
      }
      break;
    }
  }
  return 0;
}
