#include <bits/stdc++.h>
using namespace std;
const int maxn = 1000005;
map<long long, pair<int, int> > mm;
int a[maxn];
int b[maxn];
long long s[maxn], s1[maxn];
int main() {
  int i, j, n;
  cin >> n;
  for (i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    s[i] = s[i - 1] + a[i];
  }
  for (i = 1; i <= n; i++) {
    scanf("%d", &b[i]);
    s1[i] = s1[i - 1] + b[i];
  }
  int p = n;
  if (s[n] <= s1[n]) {
    i = n;
    while (i >= 0) {
      if (s[i] < s1[p]) {
        p--;
        continue;
      }
      if (mm.find(s[i] - s1[p]) != mm.end()) {
        pair<int, int> p2 = mm[s[i] - s1[p]];
        printf("%d\n", p2.first - i);
        for (j = i + 1; j <= p2.first; j++) printf("%d ", j);
        printf("\n");
        printf("%d\n", p2.second - p);
        for (j = p + 1; j <= p2.second; j++) printf("%d ", j);
        printf("\n");
        return 0;
      }
      mm[s[i] - s1[p]] = make_pair(i, p);
      i--;
    }
  } else {
    i = n;
    while (i >= 0) {
      if (s1[i] < s[p]) {
        p--;
        continue;
      }
      if (mm.find(s1[i] - s[p]) != mm.end()) {
        pair<int, int> p2 = mm[s1[i] - s[p]];
        printf("%d\n", p2.second - p);
        for (j = p + 1; j <= p2.second; j++) printf("%d ", j);
        printf("\n");
        printf("%d\n", p2.first - i);
        for (j = i + 1; j <= p2.first; j++) printf("%d ", j);
        printf("\n");
        return 0;
      }
      mm[s1[i] - s[p]] = make_pair(i, p);
      i--;
    }
  }
  printf("-1\n");
}
