fn getline() -> String{ let mut __ret=String::new(); std::io::stdin().read_line(&mut __ret).ok(); return __ret; } fn main(){ let s=getline(); let s:Vec<_>=s.trim().split(' ').collect(); let N:i32=s[0].parse().unwrap(); let M:i32=s[1].parse().unwrap(); let s=getline(); let A:Vec<_>=s.trim().split(' ').collect(); let s=getline(); let B:Vec<_>=s.trim().split(' ').collect(); for i in 0..N*M+1 { let X:i32=A[(i % N) as usize].parse().unwrap(); let Y:i32=B[(i % M) as usize].parse().unwrap(); if X == Y { print!("{}", i+1); break; } if i == N*M { print!("{}", -1); break; } } }