func_code_string: #include <bits/stdc++.h>   int n, m, k;   std::set<int> r;   std::set<std::pair<int, int> > e;   std::string getAnswer(bool b) {     if (b != 0)       return  possible ;     else       return  impossible ;   }   bool check(int x, int y) {     if (x > y) std::swap(x, y);     return e.find(std::make_pair(x, y)) == e.end();   }   void dfs(int x) {     std::vector<int> s;     for (auto now : r) {       if (check(x, now)) {         s.push_back(now);       }     }     for (auto now : s) {       r.erase(now);     }     for (auto now : s) {       dfs(now);     }   }   int main() {     std::cin >> n >> m >> k;     for (int i = 1; i <= m; i++) {       int x, y;       static int deg = 0;       std::cin >> x >> y;       if (x > y) std::swap(x, y);       e.insert(std::make_pair(x, y));       if (x == 1 && ++deg > n - k - 1) {         return puts(getAnswer(false).c_str()), 0;       }     }     for (int i = 2; i <= n; i++) {       r.insert(i);     }     int nBlock = 0;     for (int i = 2; i <= n; i++) {       if (check(1, i) && r.find(i) != r.end()) {         nBlock++;         r.erase(i);         dfs(i);       }     }     std::cout << getAnswer(nBlock <= k && r.empty()) << std::endl;     return 0;   }   