#include <bits/stdc++.h>
long long gcd(long long a, long long b) {
  if (b == 0) return a;
  return gcd(b, a % b);
}
long long x[400400];
long long p[400400];
int main() {
  int n, m;
  long long x0;
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) {
    scanf("%I64d", &x[i]);
  }
  for (int i = 0; i < m; i++) {
    scanf("%I64d", &p[i]);
  }
  x0 = x[0];
  for (int i = 0; i < n; i++) {
    x[i] -= x0;
  }
  long long lgcd = x[1];
  for (int i = 2; i < n; i++) {
    lgcd = gcd(x[i], lgcd);
  }
  for (int i = 0; i < m; i++) {
    if (gcd(p[i], lgcd) == p[i]) {
      printf("YES\n%I64d %d\n", x0, i + 1);
      return 0;
    }
  }
  printf("NO\n");
  return 0;
}
