#include <bits/stdc++.h>
using namespace std;
const int inf = 2147483647, dx[] = {-1, 0, 1, 0}, dy[] = {0, -1, 0, 1};
const int N = 100005, M = 1000005, mod = 1000000007;
const long long llinf = 9223372036854775807ll;
int n, m, mx[3003][5], l1, l2, l3, dist[3003][3003], ans, a1, a2, a3, a4,
    mx2[3003][5], l12, l22, l32;
vector<int> v[3003];
vector<int> v2[3003];
queue<int> q;
queue<int> q2;
bool u[3003], u2[3003];
int main() {
  ans = -1000;
  cin >> n >> m;
  for (int i = 1; i <= m; i++) {
    int a, b;
    cin >> a >> b;
    v[a].push_back(b);
    v2[b].push_back(a);
  }
  for (int i = 1; i <= n; i++) {
    q.push(i);
    q2.push(i);
    for (int j = 1; j <= n; j++) u[j] = u2[j] = false;
    l1 = l2 = l12 = l22 = -1, l3 = l32 = i;
    u[i] = true;
    u2[i] = true;
    int t = 0;
    while (!q.empty()) {
      int len = q.size();
      for (int j = 1; j <= len; j++) {
        int x = q.front();
        q.pop();
        dist[i][x] = t;
        for (int k = 0; k < v[x].size(); k++)
          if (!u[v[x][k]]) {
            q.push(v[x][k]);
            l1 = l2, l2 = l3, l3 = v[x][k];
            u[v[x][k]] = true;
          }
      }
      t++;
    }
    mx[i][1] = l3, mx[i][2] = l2, mx[i][3] = l1;
    while (!q2.empty()) {
      int len = q2.size();
      for (int j = 1; j <= len; j++) {
        int x = q2.front();
        q2.pop();
        for (int k = 0; k < v2[x].size(); k++)
          if (!u2[v2[x][k]]) {
            q2.push(v2[x][k]);
            l12 = l22, l22 = l32, l32 = v2[x][k];
            u2[v2[x][k]] = true;
          }
      }
    }
    mx2[i][1] = l32, mx2[i][2] = l22, mx2[i][3] = l12;
  }
  for (int i1 = 1; i1 <= n; i1++)
    for (int i2 = 1; i2 <= n; i2++) {
      int a = mx2[i1][1], b = mx[i2][1];
      if (i1 == b) b = mx[i2][2];
      if (a == i2 || a == b) a = mx2[i1][2];
      if (a == b || a == i2) a = mx2[i1][3];
      if (a == -1 || b == -1 || dist[a][i1] == 0 || dist[i1][i2] == 0 ||
          dist[i2][b] == 0)
        continue;
      int sum = dist[a][i1] + dist[i1][i2] + dist[i2][b];
      if (sum > ans) ans = sum, a1 = a, a2 = i1, a3 = i2, a4 = b;
    }
  cout << a1 << ' ' << a2 << ' ' << a3 << ' ' << a4 << '\n';
  return 0;
}
