func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1000000 + 5;   int vis[N], n, m;   pair<int, int> Get(int x) {     int a, b;     if (x >= n)       a = x - n + 1;     else       a = n - x + 1;     x = m - x + 1;     if (x >= n)       b = m - (x - n + 1) + 1;     else       b = m - (n - x + 1) + 1;     return pair<int, int>(a, b);   }   void dfs(int x) {     pair<int, int> cur = Get(x);     pair<int, int> nxt = Get(cur.first);     if (!vis[nxt.first]) {       vis[nxt.first] = 1;       dfs(nxt.first);     }     if (!vis[nxt.second]) {       vis[nxt.second] = 1;       dfs(nxt.second);     }     nxt = Get(cur.second);     if (!vis[nxt.first]) {       vis[nxt.first] = 1;       dfs(nxt.first);     }     if (!vis[nxt.second]) {       vis[nxt.second] = 1;       dfs(nxt.second);     }   }   int main() {     scanf( %d%d , &n, &m);     if (n > m) swap(n, m);     int ans = 0;     for (int i = 1; i <= m; i++)       if (!vis[i]) {         ans++;         vis[i] = 1;         dfs(i);       }     printf( %d n , ans);     return 0;   }   