use std::io; fn share_char(a: &str, b: &str) -> bool { let set_a: Vec = a.chars().collect(); let set_b: Vec = b.chars().collect(); let mut check = true; for i in set_a.iter() { let mut subcheck = false; for j in set_b.iter() { if i == j { subcheck = true; } } if subcheck == false { check = false; } else { check = true; } } check } fn main() { let mut t = String::new(); io::stdin().read_line(&mut t).unwrap(); let mut strings: Vec<[String; 2]> = vec![]; for _ in 1..=t.trim().parse::().unwrap() { let mut nm = String::new(); io::stdin().read_line(&mut nm).unwrap(); let nm_vec: Vec<&str> = nm.trim().split_whitespace().collect(); let mut nm_array: [u64; 2] = [0, 0]; for i in 0..=1 { nm_array[i] = nm_vec[i].parse::().unwrap(); } let mut string_vec: [String; 2] = [String::new(), String::new()]; for i in 0..=1 { let mut string = String::new(); io::stdin().read_line(&mut string).unwrap(); string_vec[i] = string.trim().to_string(); } strings.push(string_vec); } for i in 0..strings.len() { if !share_char(&strings[i][0], &strings[i][1]) { println!("-1"); } else { let mut counter = 0; while !strings[i][0].contains(&strings[i][1]) { strings[i][0] = strings[i][0].repeat(2); counter += 1; if counter > 25 { counter = 0; break; } } println!("{}", counter); } } }