1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#include <bits/stdc++.h>
using namespace std;

tuple<int,int,int> rozkmina(int p, int q) {
    if (p == 999 || q == 999) {
        int pyza = (p == 999 ? q : p);
        int fiko = (p == 999 ? 0 : 1);
        return {pyza, 0, fiko};
    }
    int pyza = (int)((1LL * ((p + q) % 999) * 500) % 999);
    int glut = p - pyza;
    if (glut < 0) glut += 999;
    if (glut <= 499) return {pyza, glut, 0};
    return {pyza, 999 - glut, 1};
}

pair<int,int> sklejka(int pyza, int klusek, int fiko) {
    int a, b;
    if (klusek == 0) {
        a = 999;
        b = pyza;
    } else {
        a = pyza + klusek;
        if (a >= 999) a -= 999;
        b = pyza - klusek;
        if (b < 0) b += 999;
    }
    if (fiko) swap(a, b);
    return {a, b};
}

int zjem(int x) {
    return x == 1000 ? 999 : x - 1;
}

int oddam(int x) {
    return x == 999 ? 1000 : x + 1;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    string kto;
    cin >> kto;

    int a, b;
    cin >> a >> b;
    a = zjem(a);
    b = zjem(b);

    auto [pyza, klusek, fiko] = rozkmina(a, b);

    if (kto == "Algosia") {
        int nowy = klusek + 1;
        if (nowy == 500) nowy = 0;
        auto [c, d] = sklejka(pyza, nowy, fiko);
        cout << oddam(c) << ' ' << oddam(d) << '\n';
        cout.flush();
    } else {
        int stary = klusek + 499;
        if (stary >= 500) stary -= 500;
        auto [c, d] = sklejka(pyza, stary, fiko);
        cout << oddam(c) << ' ' << oddam(d) << '\n';
        cout.flush();
    }

    return 0;
}