func_code_string: #include <bits/stdc++.h>   using namespace std;   struct pt {     int x, y;   };   int h, t, r, n, m;   int w[205][205], unc[205][205], siofdjsodi[205][205];   basic_string<pt> e[205][205], f[205][205], qu;   pt hd[205], td[205];   void ae(int i, int j, int u, int v) {     if (u + v > r) return;     e[i][j] += {u, v};     f[u][v] += {i, j};     unc[i][j]++;   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(nullptr);     cout.tie(nullptr);     cerr.tie(nullptr);     cin >> h >> t >> r;     cin >> n;     for (int i = 1; i <= n; i++) cin >> hd[i].x >> hd[i].y;     cin >> m;     for (int i = 1; i <= m; i++) cin >> td[i].x >> td[i].y;     for (int i = 0; i <= r; i++) {       for (int j = 0; i + j <= r; j++) {         for (int x = 1; x <= min(i, n); x++) {           int u = i - x + hd[x].x;           int v = j + hd[x].y;           ae(i, j, u, v);         }         for (int y = 1; y <= min(j, m); y++) {           int u = i + td[y].x;           int v = j - y + td[y].y;           ae(i, j, u, v);         }       }     }     {       w[0][0] = 1;       qu += pt{0, 0};       size_t qs = 0;       while (qs != qu.size()) {         auto [i, j] = qu[qs++];         for (auto [x, y] : f[i][j]) {           if (w[x][y] == 0) {             w[x][y] = 1;             siofdjsodi[x][y] = siofdjsodi[i][j] + 1;             qu += {x, y};           }         }       }     }     qu = {};     for (int i = 0; i <= r; i++) {       for (int j = 0; i + j <= r; j++) {         if (w[i][j] == 0 && unc[i][j] == 0) {           qu += {i, j};         }       }     }     size_t qs = 0;     while (qs != qu.size()) {       auto [i, j] = qu[qs++];       int q = 0;       for (auto [x, y] : e[i][j]) {         q = max(q, siofdjsodi[x][y]);       }       w[i][j] = -1;       siofdjsodi[i][j] = q + 1;       for (auto [x, y] : f[i][j]) {         if (!--unc[x][y]) {           qu += {x, y};         }       }     }     if (w[h][t] == 1) {       cout <<  Ivan n ;       cout << siofdjsodi[h][t] <<   n ;     } else if (w[h][t] == -1) {       cout <<  Zmey n ;       cout << siofdjsodi[h][t] <<   n ;     } else {       cout <<  Draw n ;     }   }   