1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
fn algosia(i: i16, j: i16) -> (i16, i16) {
    if i ^ 1 == j {
        ((i + 2) % 1000, (j + 2) % 1000)
    } else {
        (i ^ 1, j ^ 1)
    }
}

fn bajtek(i: i16, j: i16) -> (i16, i16) {
    if i ^ 1 == j {
        ((i + 998) % 1000, (j + 998) % 1000)
    } else {
        (i ^ 1, j ^ 1)
    }
}

fn main() {
    let mut lines = std::io::stdin().lines();
    let f = if lines.next().unwrap().unwrap() == "Algosia" { algosia } else { bajtek };
    let ij = lines.next().unwrap().unwrap().split_whitespace().map(|x| str::parse(x).unwrap()).collect::<Vec<i16>>();
    let (k, l) = f(ij[0] - 1, ij[1] - 1);
    println!("{} {}", k + 1, l + 1);
}