func_code_string: #include <bits/stdc++.h>   using namespace std;   int n, m, k;   vector<int> cur;   unordered_set<long long> bad;   unordered_set<int> was;   void err() {     cout <<  impossible  << endl;     exit(0);   }   void go(int x) {     cur.push_back(x);     vector<int> g;     for (auto it = was.begin(); it != was.end(); it++)       if (bad.count(x * 1000000ll + (*it)) == 0) g.push_back(*it);     for (int i = 0; i < g.size(); i++) was.erase(g[i]);     for (int i = 0; i < g.size(); i++) go(g[i]);   }   int main() {     ios::sync_with_stdio(false);     cin >> n >> m >> k;     for (int i = 0; i < m; i++) {       int x, y;       cin >> x >> y;       x--;       y--;       bad.insert(x * 1000000ll + y);       bad.insert(y * 1000000ll + x);     }     for (int i = 1; i < n; i++) was.insert(i);     vector<vector<int> > comps;     for (int i = 1; i < n; i++)       if (was.count(i)) {         cur.clear();         was.erase(i);         go(i);         comps.push_back(cur);       }     int sum = 0;     for (int i = 0; i < comps.size(); i++) {       int cnt = 0;       for (int j = 0; j < comps[i].size(); j++)         if (bad.count(comps[i][j]) == 0) cnt++;       if (cnt == 0) err();       sum += cnt;     }     if (k < comps.size() || k > sum) err();     cout <<  possible  << endl;     return 0;   }   