fn is_prime(val: usize) -> bool { if val == 1 { return false; } for i in 2..=(val as f64).sqrt().floor() as usize { if val % i == 0 { return false; } } true } fn main() { let mut temp = String::new(); std::io::stdin().read_line(&mut temp).ok(); let temp: Vec = temp.trim().split_whitespace().map(|s| s.parse().unwrap()).collect(); let y = temp[0]; let x = temp[1]; let y_isprime = is_prime(y); let x_isprime = is_prime(x); if y_isprime && x_isprime { println!("Second"); return; } let mut nexty_prime = y; let mut nextx_prime = x; for i in y+1.. { if is_prime(i) { nexty_prime = i; break; } } for i in x+1.. { if is_prime(i) { nextx_prime = i; break; } } let diff = (nextx_prime - 1 - x) + (nexty_prime - 1 - y); if diff % 2 == 1 { println!("First"); } else { println!("Second"); } }