#include <bits/stdc++.h>
using namespace std;
long long mod = 1e9 + 7;
long long modexp(long long x, long long n) {
  if (n == 0) return 1;
  if (n % 2 == 0) {
    long long y = modexp(x, n / 2) % mod;
    return (y * y) % mod;
  }
  return (x * modexp(x, n - 1) % mod) % mod;
}
long long powr(long long x, long long n) {
  long long ans = 1;
  for (int i = 1; i <= n; i++) ans = ans * x;
  return ans;
}
const int MAX = 100005;
int main() {
  int n, m;
  scanf("%d", &n), scanf("%d", &m);
  set<int> st;
  vector<pair<int, int> > v1, v2;
  for (int i = 0; i < n; i++) {
    int x, y;
    scanf("%d", &x), scanf("%d", &y);
    v1.push_back(make_pair(min(x, y), max(x, y)));
  }
  for (int i = 0; i < m; i++) {
    int x, y;
    scanf("%d", &x), scanf("%d", &y);
    v2.push_back(make_pair(min(x, y), max(x, y)));
  }
  for (int i = 0; i < v1.size(); i++) {
    int num;
    set<int> temp;
    for (int j = 0; j < v2.size(); j++) {
      if (v1[i].first == v2[j].first && v1[i].second == v2[j].second) continue;
      if (v1[i].first == v2[j].first) {
        temp.insert(v1[i].first);
        num = v1[i].first;
      }
      if (v1[i].second == v2[j].second) {
        temp.insert(v1[i].second);
        num = v1[i].second;
      }
      if (v1[i].first == v2[j].second) {
        temp.insert(v1[i].first);
        num = v1[i].first;
      }
      if (v1[i].second == v2[j].first) {
        temp.insert(v1[i].second);
        num = v1[i].second;
      }
    }
    if (temp.size() > 1) return 0 * printf("-1\n");
    if (temp.size() == 1) st.insert(num);
  }
  for (int i = 0; i < v2.size(); i++) {
    int num;
    set<int> temp;
    for (int j = 0; j < v1.size(); j++) {
      if (v1[j].first == v2[i].first && v1[j].second == v2[i].second) continue;
      if (v1[j].first == v2[i].first) {
        temp.insert(v1[j].first);
        num = v1[j].first;
      }
      if (v1[j].second == v2[i].second) {
        temp.insert(v1[j].second);
        num = v1[j].second;
      }
      if (v1[j].first == v2[i].second) {
        temp.insert(v1[j].first);
        num = v1[j].first;
      }
      if (v1[j].second == v2[i].first) {
        temp.insert(v1[j].second);
        num = v1[j].second;
      }
    }
    if (temp.size() > 1)
      return 0 * printf("-1\n");
    else if (temp.size() == 1)
      st.insert(num);
  }
  if (st.size() == 1)
    printf("%d\n", *(st.begin()));
  else
    printf("0\n");
  return 0;
}
