#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; void Main() { int N,M; cin >> N >> M; vector A(N),B(M); for(int i = 0;i < N;i++) { cin >> A[i]; } for(int i = 0;i < M;i++) { cin >> B[i]; } map,int> mp; for(int i = 0;i < N * M;i++) { pair P = make_pair(i % N,i % M); if(mp.find(P) == mp.end()) { mp[P] = i; } } int ans = (int)1e9; for(int i = 0;i < N;i++) { for(int j = 0;j < M;j++) { if(A[i] == B[j]) { pair P = make_pair((i + 1) % N,(j + 1) % M); if(mp.find(P) != mp.end()) { ans = min(ans,mp[P]); } } } } if(ans == (int)1e9) { ans = -1; } cout << ans << "\n"; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int tt = 1; /* cin >> tt; */ while(tt--) Main(); }