#include <bits/stdc++.h>
using namespace std;
const int DEBUG = 0;
namespace defs {
long long read() {
  long long aa, bb = 1, ch;
  while (ch = getchar(), (ch < '0' || ch > '9') && ch != '-')
    ;
  ch == '-' ? aa = 0, bb = -1 : aa = ch - '0';
  while (ch = getchar(), ch >= '0' && ch <= '9') aa = aa * 10 + ch - '0';
  return aa * bb;
}
const unsigned int rand_x = 1401010315;
const unsigned int rand_y = 1000000019;
unsigned int rand_cur;
unsigned int rand_int() { return rand_cur = rand_cur * rand_x + rand_y; }
const int inf = 1071026353;
const int mod = 1000000007;
const int modx = 998244353;
}  // namespace defs
namespace lightningwork {
using namespace defs;
int n, a[1000010], b[1000010];
int p[1000010], s[1000010];
int vis[1000010];
int ans[2][2];
void print(int t) {
  printf("%d\n", ans[t][0]);
  for (int i = 1; i <= ans[t][0]; ++i) printf("%d ", ans[t][1] + i - 1);
  puts("");
}
void work() {
  n = read();
  long long suma = 0, sumb = 0;
  for (int i = 1; i <= n; ++i) {
    a[i] = read();
    suma += a[i];
  }
  for (int i = 1; i <= n; ++i) {
    b[i] = read();
    sumb += b[i];
  }
  if (suma > sumb) {
    for (int i = 1; i <= n; ++i) {
      swap(a[i], b[i]);
    }
  }
  long long sum = 0;
  for (int i = 0, j = 0; i <= n; sum += a[++i]) {
    while (sum >= n) sum -= b[++j];
    p[i] = j;
    s[i] = sum;
  }
  memset(vis, -1, sizeof vis);
  for (int i = 0; i <= n; ++i) {
    if (vis[s[i]] == -1) {
      vis[s[i]] = i;
    } else {
      int l = vis[s[i]], r = i;
      ans[0][0] = r - l;
      ans[0][1] = l + 1;
      ans[1][0] = p[r] - p[l];
      ans[1][1] = p[l] + 1;
      if (suma > sumb) {
        print(1);
        print(0);
      } else {
        print(0);
        print(1);
      }
      return;
    }
  }
  puts("-1");
}
}  // namespace lightningwork
int main() {
  if (0)
    freopen(
        "work"
        ".in",
        "r", stdin),
        freopen(
            "work"
            ".out",
            "w", stdout);
  lightningwork::work();
  if (0) fclose(stdin), fclose(stdout);
  return 0;
}
