func_code_string: #include <bits/stdc++.h>   int GCD(int u, int v) {     while (v != 0) {       int r = u % v;       u = v;       v = r;     }     return u;   }   int main() {     int amtV;     int amtE;     std::vector<std::pair<int, int>> graph;     std::cin >> amtV >> amtE;     int connected = 0;     int remaining = amtE;     if (amtE >= amtV - 1) {       for (int i = 2; i <= amtV; i++) {         graph.push_back(std::pair<int, int>(i, 1));       }       remaining = amtE - (amtV - 1);       for (int i = 3; i <= amtV; i += 2) {         if (remaining == 0) break;         graph.push_back(std::pair<int, int>(i, 2));         remaining--;       }       int currInd = 3;       int currCompare;       while (remaining > 0 && currInd < amtV) {         currCompare = currInd + 1;         while (remaining > 0 && currCompare <= amtV) {           if (GCD(currInd, currCompare) == 1) {             graph.push_back(std::pair<int, int>(currInd, currCompare));             remaining--;           }           currCompare++;         }         currInd++;       }     }     if (remaining == 0) {       std::cout <<  Possible  << std::endl;       for (auto it = graph.begin(); it != graph.end(); it++) {         std::cout << it->first <<     << it->second << std::endl;       }     } else {       std::cout <<  Impossible  << std::endl;     }     return 0;   }   