#include using namespace std; #define REP(i,n) for (int i = 0; i < (n); ++i) #define DREP(i,s,n) for(int i = (s); i < (n); i++) template inline bool chmin(T& a, T b) {if (a > b) {a = b;return true;}return false;} template inline bool chmax(T& a, T b) {if (a < b) {a = b;return true;}return false;} using ll = long long; using P = pair; using Pl = pair; using veci = vector; using vecl = vector; using vecveci = vector>; using vecvecl = vector>; const int MOD = 1000000007; const double pi = acos(-1); ll gcd(ll a, ll b) {if(b == 0) return a; else return gcd(b,a%b);} ll lcm(ll a, ll b) {return a*b/gcd(a,b);} void ex_gcd(ll a, ll b, ll &x, ll &y) { if(b == 0) { x = 1, y = 0; return; } ex_gcd(b,a%b,y,x); y -= (a/b)*x; } int main() { int N,M; cin >> N >> M; veci A(N),B(M); REP(i,N) cin >> A[i]; REP(i,M) cin >> B[i]; REP(i,M-1) REP(j,N) A.push_back(A[j]); REP(i,N-1) REP(j,M) B.push_back(B[j]); REP(i,N*M) if(A[i] == B[i]) { cout << i+1 << endl; return 0; } cout << -1 << endl; return 0; }