#include <bits/stdc++.h>
using namespace std;
const int INF = 2e9;
const int mod = 1e9 + 7;
const long long int LONGINF = 4e18;
const double eps = 1e-9;
const double PI = 3.14159265359;
map<pair<queue<int>, queue<int>>, int> m;
void solve(int n) {
  queue<int> d1, d2;
  int a, k, b, f = 0;
  scanf("%d", &k);
  for (int i = 0; i < (k); i++) {
    scanf("%d", &a);
    d1.push(a);
  }
  scanf("%d", &k);
  for (int i = 0; i < (k); i++) {
    scanf("%d", &a);
    d2.push(a);
  }
  while (!d1.empty() && !d2.empty()) {
    f++;
    a = d1.front();
    b = d2.front();
    d1.pop();
    d2.pop();
    if (a > b) {
      d1.push(b);
      d1.push(a);
    } else {
      d2.push(a);
      d2.push(b);
    }
    if (m[make_pair(d1, d2)] > 0) {
      printf("-1");
      return;
    }
    m[make_pair(d1, d2)]++;
  }
  printf("%d %d", f, d1.empty() ? 2 : 1);
}
int main() {
#pragma comment(linker, "/STACK:268435456")
  long long int a;
  int n;
  string s;
  while (scanf("%d", &n) == 1) solve(n);
  return 0;
}
