#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
int n, m, h, t, u, v, src[MAXN], dst[MAXN], num[MAXN], used[MAXN];
vector<int> g[MAXN];
void out(vector<int> &v) {
  for (int i = 0; i < v.size(); ++i) {
    cout << v[i] << " \n"[i == v.size() - 1];
  }
}
bool check(int u, int v, int ver) {
  int cnt = 0;
  num[u] = num[v] = -1;
  for (int i = 0; i < g[u].size() && i < h + t; ++i) {
    int w = g[u][i];
    if (w == v) continue;
    used[w] = ver;
    num[w] = 1;
    ++cnt;
  }
  for (int i = 0; i < g[v].size() && i < h + t; ++i) {
    int w = g[v][i];
    if (w == u) continue;
    if (used[w] == ver) {
      num[w] = 2;
      continue;
    }
    used[w] = ver;
    num[w] = 1;
    ++cnt;
  }
  int degu = g[u].size() - 1, degv = g[v].size() - 1;
  if (h >= t != degu >= degv) swap(degu, degv);
  return degu >= h && degv >= t && cnt >= h + t;
}
void solve() {
  for (int mm = 0; mm < m; ++mm) {
    if (check(src[mm], dst[mm], mm + 1)) {
      cout << "YES\n";
      u = src[mm], v = dst[mm];
      if (h >= t != g[u].size() >= g[v].size()) swap(u, v);
      cout << u << " " << v << endl;
      vector<int> ans;
      for (int i = 0; i < g[u].size() && ans.size() < h; ++i) {
        int v = g[u][i];
        if (num[v] == 1) {
          num[v] == -1;
          ans.push_back(v);
        }
      }
      for (int i = 0; i < g[u].size() && ans.size() < h; ++i) {
        int v = g[u][i];
        if (num[v] > 1) {
          ans.push_back(v);
          num[v] = -1;
        }
      }
      out(ans);
      ans.clear();
      swap(u, v);
      for (int i = 0; i < g[u].size() && ans.size() < t; ++i) {
        int v = g[u][i];
        if (num[v] != -1) ans.push_back(v);
      }
      out(ans);
      return;
    }
  }
  cout << "NO\n";
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout << setprecision(6) << fixed;
  clog.copyfmt(cout);
  cin >> n >> m >> h >> t;
  for (int i = 0; i < m; ++i) {
    cin >> u >> v;
    src[i] = u, dst[i] = v;
    g[u].push_back(v);
    g[v].push_back(u);
  }
  solve();
  return 0;
}
