#include <bits/stdc++.h>
using namespace std;
const int maxn = 300100;
const int mod = 1e9 + 7;
bool visited[maxn];
bool mark[maxn];
map<pair<int, int>, bool> mp;
set<int> st;
set<int> st2;
vector<int> v;
vector<int> tmp;
vector<int> tmp2;
void fft(int x) {
  queue<int> q;
  visited[x] = 1;
  st.erase(x);
  q.push(x);
  while (q.size()) {
    x = q.front();
    q.pop();
    vector<int> tmp;
    while (st.size()) {
      int u = *st.begin();
      st.erase(u);
      if (visited[u]) {
        continue;
      }
      if (!mp[make_pair(x, u)]) {
        visited[u] = 1;
        q.push(u);
      } else {
        tmp.push_back(u);
      }
    }
    for (int i = 0; i < tmp.size(); i++) {
      st.insert(tmp[i]);
    }
  }
}
void bfs(int x) {
  queue<int> q;
  mark[x] = 1;
  st2.erase(x);
  q.push(x);
  while (q.size()) {
    x = q.front();
    q.pop();
    vector<int> tmp;
    while (st2.size()) {
      int u = *st2.begin();
      st2.erase(u);
      if (mark[u]) {
        continue;
      }
      if (!mp[make_pair(x, u)]) {
        mark[u] = 1;
        q.push(u);
      } else {
        tmp.push_back(u);
      }
    }
    for (int i = 0; i < tmp.size(); i++) {
      st2.insert(tmp[i]);
    }
  }
}
long long max(long long x, long long y) { return (x > y ? x : y); }
long long min(long long x, long long y) { return (x < y ? x : y); }
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, m, k;
  cin >> n >> m >> k;
  for (int i = 0; i < n; i++) {
    st.insert(i);
    st2.insert(i);
  }
  for (int i = 0; i < m; i++) {
    int a, b;
    cin >> a >> b;
    a--;
    b--;
    mp[make_pair(a, b)] = 1;
    mp[make_pair(b, a)] = 1;
  }
  int mx = 0;
  for (int i = 1; i < n; i++) {
    mx += !mp[make_pair(0, i)];
  }
  if (mx < k) {
    cout << "impossible";
    return 0;
  }
  fft(0);
  for (int i = 0; i < n; i++) {
    if (!visited[i]) {
      cout << "impossible";
      return 0;
    }
  }
  int mn = 0;
  st2.erase(0);
  for (int i = 1; i < n;) {
    mn++;
    bfs(i);
    while (mark[i]) {
      i++;
    }
  }
  if (mn > k) {
    cout << "impossible";
    return 0;
  }
  cout << "possible";
  return 0;
}
