#include <iostream>
#include <vector>
using namespace std;
#define ll long long
vector<vector<bool>> adj;
int main(void){
// freopen("input.txt", "r", stdin);
ll n, m; cin>>n>>m;
adj.assign(n, vector<bool>(n, 0));
vector<pair<ll, ll>> edges (m, pair<ll, ll> {0, 0});
for(ll i = 0; i<m; i++){
ll a, b; cin>>a>>b;
a--, b--;
edges[i] = {a, b};
adj[a][b] = 1;
adj[b][a] = 1;
}
for(auto e:edges){
ll l = -1, r = -1;
for(ll i = 0; i<n; i++){
if((i == e.first) || (i == e.second)) continue;
else if((adj[e.first][i] == 1)&& (adj[e.second][i] == 0)) l = i;
else if((adj[e.first][i] == 0) && (adj[e.second][i] == 1)) r = i;
}
if((l != -1) && (r != -1)){
cout<<l+1<<' '<<e.first+1<<' '<<e.second+1<<' '<<r+1<<endl;
return 0;
}
}
cout<<"no"<<endl;
return 0;
}