#include <bits/stdc++.h>
using namespace std;
int n, m;
int h[310];
vector<int> g[310];
int mx = 0, mxr;
int vis[310];
void dfs(int u, int fa) {
vis[u] = 1;
for (auto v : g[u]) {
if (!vis[v]) {
dfs(v, u);
}
}
}
int main()
{
int cs = 0;
cin >> n >> m;
for (int i = 1; i <= n; i++) {
cin >> h[i];
if (mx < h[i]) {
mxr = i;
mx = h[i];
}
}
for (int i = 1; i <= n; i++) {
if (h[i] == mx) {
cs++;
}
}
if (cs > 1) {
cout << "Non\n";
return 0;
}
for (int i = 1; i <= m; i++) {
int a, b;
cin >> a >> b;
if (h[a] > h[b]) {
g[a].push_back(b);
}
else if (h[b] > h[a]) {
g[b].push_back(a);
}
}
dfs(mxr, 0);
int ans = 0;
int tp;
for (int i = 1; i <= n; i++) {
if (!vis[i]) {
tp = i;
ans++;
}
}
if (ans > 1) cout << "Non\n";
else cout << "Oui, j\'ai trouve la solution.\n" << mxr << '\n';
return 0;
}