#include <bits/stdc++.h>
using namespace std;
int V, E, h, t, deg[101111];
vector<int> G[101111];
bool vst[101111], vst1[101111];
void input() {
  cin >> V >> E >> h >> t;
  memset(deg, 0, sizeof(deg));
  for (int cc = 0; cc < E; cc++) {
    int a, b;
    scanf("%d%d", &a, &b);
    G[a - 1].push_back(b - 1);
    deg[a - 1]++;
    G[b - 1].push_back(a - 1);
    deg[b - 1]++;
  }
}
void solve() {
  memset(vst, 0, sizeof(vst));
  memset(vst1, 0, sizeof(vst1));
  for (int v = 0; v < V; v++) {
    for (int i = 0; i < G[v].size(); i++) vst[G[v][i]] = 1;
    for (int i = 0; i < G[v].size(); i++) {
      int u = G[v][i];
      vector<int> head, tail, both;
      for (int j = 0; j < G[u].size(); j++) {
        int k = G[u][j];
        if (k == v) continue;
        if (vst[k]) {
          if (both.size() < h + t)
            both.push_back(k);
          else if (tail.size() < t)
            tail.push_back(k);
          else
            break;
        } else {
          if (tail.size() < t)
            tail.push_back(k);
          else
            break;
        }
        vst1[k] = 1;
      }
      for (int j = 0; j < G[v].size(); j++)
        if (vst1[G[v][j]] || G[v][j] == u)
          continue;
        else if (head.size() < h)
          head.push_back(G[v][j]);
        else
          break;
      for (int j = 0; j < tail.size(); j++) vst1[tail[j]] = 0;
      for (int j = 0; j < both.size(); j++) vst1[both[j]] = 0;
      for (int j = 0; j < both.size(); j++) {
        if (head.size() < h)
          head.push_back(both[j]);
        else if (tail.size() < t)
          tail.push_back(both[j]);
        else
          break;
      }
      if (h <= head.size() && t <= tail.size()) {
        cout << "YES" << endl;
        cout << v + 1 << " " << u + 1 << endl;
        for (int k = 0; k < h; k++) cout << head[k] + 1 << " ";
        cout << endl;
        for (int k = 0; k < t; k++) cout << tail[k] + 1 << " ";
        cout << endl;
        return;
      }
    }
    for (int i = 0; i < G[v].size(); i++) vst[G[v][i]] = 0;
  }
  cout << "NO" << endl;
}
int main() {
  input();
  solve();
}
