#include <bits/stdc++.h>
using namespace std;
vector<char> vis(101);
class Dsu {
 public:
  vector<int> p;
  Dsu(int n) {
    p.resize(n);
    iota(begin(p), end(p), 0);
  }
  int get(int v) { return v == p[v] ? v : p[v] = get(p[v]); }
  void unite(int a, int b) {
    a = get(a);
    b = get(b);
    if (a != b) p[b] = a;
    vis[a] |= vis[b];
  }
};
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  int n, m, k;
  cin >> n >> m;
  int mx = max(n, m);
  for (int i = 0, k, a; i < 2; i++) {
    cin >> k;
    while (k--) {
      cin >> a;
      vis[a] = 1;
    }
  }
  Dsu dsu(mx);
  for (int i = 0; i <= mx + mx; i++) dsu.unite(i % n, i % m);
  bool flag = true;
  for (int i = 0; i < mx; i++) flag &= vis[dsu.get(i)];
  cout << (flag ? "Yes" : "No");
  return 0;
}
