#include <bits/stdc++.h>
using namespace std;
typedef struct {
  int s;
} node;
queue<node> q;
queue<node> p;
int vis[11][11];
int main() {
  int n;
  cin >> n;
  int ans = 0;
  node map;
  int k1, k2;
  cin >> k1;
  for (int i = 0; i < k1; i++) {
    cin >> map.s;
    p.push(map);
  }
  cin >> k2;
  for (int i = 0; i < k2; i++) {
    cin >> map.s;
    q.push(map);
  }
  while (1) {
    if (p.empty()) {
      printf("%d 2\n", ans);
      break;
    }
    if (q.empty()) {
      printf("%d 1\n", ans);
      break;
    }
    node tmpa = p.front();
    node tmpb = q.front();
    if (ans > 1000000) {
      printf("-1\n");
      break;
    }
    vis[tmpa.s][tmpb.s] = 1;
    q.pop();
    p.pop();
    ans += 1;
    if (tmpa.s > tmpb.s) {
      p.push(tmpb);
      p.push(tmpa);
    } else {
      q.push(tmpa);
      q.push(tmpb);
    }
  }
}
