#include <bits/stdc++.h>
#define mk make_pair
using ll = long long;
using namespace std;
using pii = pair<int,int>;
const int N=2505;
int n,m,ans,k,val[N];
vector<int>g[N];
set<int>s[N][2];
bitset<N>bit[N];
inline void bfs(int x){queue<int>q;bit[x][x]=1;q.emplace(x);while(!q.empty()){int u=q.front().second;q.pop();for(int v:g[u]){if(!bit[x][v]&&bit[1][v]){if(v<*s[u][0].begin())s[u][0].emplace(v);if(s[u][0].size()>3)s[u][0].erase(s.begin());q.emplace(v);}else if(!bit[x][v]&&bit[n][v]){if(v<*s[u][1].begin())s[u][1].emplace(v);if(s[u][1].size()>3)s[u][1].erase(s.begin());q.emplace(v);}else if(!bit[x][v])q.emplace(v);}}
}
int main(){cin>>n>>m>>k;for(int i=1;i<=n;++i)cin>>val[i];for(int x=0,y=0;m--;){cin>>x>>y;g[x].emplace_back(y),g[y].emplace_back(x);}bfs(1),bfs(n);for(int i=2;i<n;++i)bfs(i);for(int i=1;i<=n;++i){for(int j=1;j<=n;++j){if(!bit[1][i]||!bit[j][n])continue;set<int>st;for(int x:s[i][0])st.emplace(x);for(int x:s[i][1])st.emplace(x);set<int>sq;for()}}return 0;
}