#include using namespace std; int main(){ int n,m; cin>>n>>m; int h[n]; for(int i=0;i>h[i]; vector> G(n); for(int i=0;i>u>>v; u--;v--; G[u].push_back(v); G[v].push_back(u); } int idx[n]; iota(idx,idx+n,0); sort(idx,idx+n,[&](int i,int j){return h[i] dp0(n,-1e9),dpn(n,-1e9); dp0[0]=1; dpn[n-1]=1; for(int i:idx){ for(int j:G[i]) if(h[j] DQ{ind}; int p0=dp0[ind],pn=dpn[ind]; for(int i=n-1;i>=0;i--){ if(dp0[idx[i]]+1==p0){ DQ.push_front(idx[i]); p0--; } if(dpn[idx[i]]+1==pn){ DQ.push_back(idx[i]); pn--; } } for(int i:DQ) cout<