#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 int get(int n){ int r = sqrt(n); if(r*r <= n && n < (r+1)*(r+1))return r; if(r*r>n)r++; else r--; return r; } int main(){ int n,m; cin>>n>>m; vector a(n),b(m); rep(i,n)cin>>a[i]; rep(i,m)cin>>b[i]; for(int i=1;true;i++){ if(a[0]==1&&binary_search(b.begin(),b.end(),i))continue; if(b[0]==1&&binary_search(a.begin(),a.end(),i))continue; for(int j=i*i;true;j++){ bool f = false; for(int k=1;k*k<=j;k++){ if(j%k==0){ int x = k; int y = j/k; rep(_,2){ if(binary_search(a.begin(),a.end(),get(x))&&binary_search(b.begin(),b.end(),get(y))){ f = true; goto L; } swap(x,y); } } } L:; if(!f){ cout<