#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";
}
