func_code_string: #include <bits/stdc++.h>   using namespace std;   long long int powmod(long long int a, long long int e) {     if (e == 0) return 1;     long long int x = powmod(a * a % 1000000007, e >> 1);     return e & 1 ? x * a % 1000000007 : x;   }   set<int> unvis;   set<pair<long long int, long long int> > forbid;   void dfs(int v) {     int ver = -1;     auto it = unvis.begin();     while (it != unvis.end()) {       ver = *it;       if (forbid.find({min(ver, v), max(ver, v)}) != forbid.end()) {         it++;         continue;       }       unvis.erase(it);       dfs(ver);       it = unvis.upper_bound(ver);     }   }   int main() {     ios_base::sync_with_stdio(false);     cin.tie(NULL);     int n, m, k;     cin >> n >> m >> k;     for (long long int i = 0; i < m; i++) {       int a, b;       cin >> a >> b;       a--;       b--;       forbid.insert({min(a, b), max(a, b)});     }     for (long long int i = 0; i < n - 1; i++) unvis.insert(i + 1);     dfs(0);     if (!unvis.empty()) {       cout <<  impossible ;       return 0;     }     int cnt = 0;     for (auto i : forbid) {       if (i.first == 0)         cnt++;       else         break;     }     for (long long int i = 1; i < n; i++) unvis.insert(i);     int conn = 0;     while (!unvis.empty()) {       int x = *unvis.begin();       unvis.erase(unvis.begin());       dfs(x);       conn++;     }     if (k >= conn and k <= n - 1 - cnt)       cout <<  possible ;     else       cout <<  impossible ;   }   