#include <bits/stdc++.h>
using namespace std;
// #define int long long
using ll = long long;
using ld = long double;
#define el '\n'
#define dbg(x) cout << #x << " = " << x << el
const int N=1e5+10;
const ll INF=2e18;
vector<ll> adj[N], cores(N), vis(N), peso(N), dist(N, INF);
void solve() {
int n, m, k; cin >> n >> m >> k;
for(int i = 1; i<= n; i++){
int a; cin >>a; peso[i]=a;
}
for(int i =0; i<m; i++){
int a, b; cin >>a >> b;
adj[a].push_back(b);
adj[b].push_back(a);
}
priority_queue<pair<ll, int>, vector<pair<ll, int>>, greater<>> pq;
pq.push(make_pair(peso[1], 1));
while (!pq.empty())
{
auto [p, v] = pq.top();
pq.pop();
if(vis[v]) continue;
vis[v]=1;
for(auto x: adj[v]){
if(vis[x] || dist[x] < peso[x] + p) continue;
dist[x] = peso[x]+p;
pq.push({peso[x]+p, x});
}
}
set <int> st;
for(int i = 1; i<= n; i++) st.insert(i);
int flag = 0, comp= n-k;
for(auto x:adj[1]) if(x == n) flag = 1;
if(flag && dist[n] == peso[1] + peso[n] && k == 1 && comp == 1){
cout << "impossible\n";
return;
} else if(flag && dist[n] == peso[1] + peso[n]){
if(k > 1){
cores[1] = cores[n] = 1;k-=2;
st.erase(1); st.erase(n);
} else{
cores[1] = cores[n] = 2;
st.erase(1); st.erase(n);
}
}
// cout << dist[n]<<"\n";
if(k >= 1){
k--;
cores[1] = 1;
st.erase(1);
for(auto x: adj[1]){
if(!k) break;
cores[x] = 1;
k--;
st.erase(x);
}
}
if(k >= 1){
k--;
cores[n] =1;
st.erase(n);
for(auto x: adj[n]){
if(!st.size() || st.find(x) == st.end()) continue;
if(!k) break;
k--;
st.erase(x);
}
}
for(auto x: st) cores[x] = 2;
for(int i = 1; i<= n; i++){
if(cores[i] == 2) cout << "S";
else cout <<"N";
}
cout <<"\n";
}
int32_t main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int ttt = 1;
// cin >> ttt;
while(ttt--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyAjZGVmaW5lIGludCBsb25nIGxvbmcKdXNpbmcgbGwgPSBsb25nIGxvbmc7CnVzaW5nIGxkID0gbG9uZyBkb3VibGU7CiNkZWZpbmUgZWwgJ1xuJwojZGVmaW5lIGRiZyh4KSBjb3V0IDw8ICN4IDw8ICIgPSAiIDw8IHggPDwgZWwKCmNvbnN0IGludCBOPTFlNSsxMDsKY29uc3QgbGwgSU5GPTJlMTg7CnZlY3RvcjxsbD4gYWRqW05dLCBjb3JlcyhOKSwgdmlzKE4pLCBwZXNvKE4pLCBkaXN0KE4sIElORik7Cgp2b2lkIHNvbHZlKCkgewogICAgaW50IG4sIG0sIGs7IGNpbiA+PiBuID4+IG0gPj4gazsKICAgIGZvcihpbnQgaSA9IDE7IGk8PSBuOyBpKyspewogICAgICAgIGludCBhOyBjaW4gPj5hOyBwZXNvW2ldPWE7CiAgICB9CiAgICBmb3IoaW50IGkgPTA7IGk8bTsgaSsrKXsKICAgICAgICBpbnQgYSwgYjsgY2luID4+YSA+PiBiOwogICAgICAgIGFkalthXS5wdXNoX2JhY2soYik7CiAgICAgICAgYWRqW2JdLnB1c2hfYmFjayhhKTsKICAgIH0KCiAgICBwcmlvcml0eV9xdWV1ZTxwYWlyPGxsLCBpbnQ+LCB2ZWN0b3I8cGFpcjxsbCwgaW50Pj4sIGdyZWF0ZXI8Pj4gcHE7CgogICAgcHEucHVzaChtYWtlX3BhaXIocGVzb1sxXSwgMSkpOwogICAgd2hpbGUgKCFwcS5lbXB0eSgpKQogICAgewogICAgICAgIGF1dG8gW3AsIHZdID0gcHEudG9wKCk7CiAgICAgICAgcHEucG9wKCk7CiAgICAgICAgaWYodmlzW3ZdKSBjb250aW51ZTsKICAgICAgICB2aXNbdl09MTsKCiAgICAgICAgZm9yKGF1dG8geDogYWRqW3ZdKXsKICAgICAgICAgICAgaWYodmlzW3hdIHx8IGRpc3RbeF0gPCBwZXNvW3hdICsgcCkgY29udGludWU7CiAgICAgICAgICAgIGRpc3RbeF0gPSBwZXNvW3hdK3A7CiAgICAgICAgICAgIHBxLnB1c2goe3Blc29beF0rcCwgeH0pOwogICAgICAgIH0KICAgIH0KCgogICAgc2V0IDxpbnQ+IHN0OwogICAgZm9yKGludCBpID0gMTsgaTw9IG47IGkrKykgc3QuaW5zZXJ0KGkpOwogICAgaW50IGZsYWcgPSAwLCBjb21wPSBuLWs7CiAgICBmb3IoYXV0byB4OmFkalsxXSkgaWYoeCA9PSBuKSBmbGFnID0gMTsKCiAgICBpZihmbGFnICYmIGRpc3Rbbl0gPT0gcGVzb1sxXSArIHBlc29bbl0gJiYgayA9PSAxICYmIGNvbXAgPT0gMSl7CiAgICAgICAgY291dCA8PCAiaW1wb3NzaWJsZVxuIjsKICAgICAgICByZXR1cm47CiAgICB9IGVsc2UgaWYoZmxhZyAmJiBkaXN0W25dID09IHBlc29bMV0gKyBwZXNvW25dKXsKICAgICAgICBpZihrID4gMSl7CiAgICAgICAgICAgIGNvcmVzWzFdID0gY29yZXNbbl0gPSAxO2stPTI7CiAgICAgICAgICAgIHN0LmVyYXNlKDEpOyBzdC5lcmFzZShuKTsKICAgICAgICB9IGVsc2V7CiAgICAgICAgICAgIGNvcmVzWzFdID0gY29yZXNbbl0gPSAyOwogICAgICAgICAgICBzdC5lcmFzZSgxKTsgc3QuZXJhc2Uobik7CiAgICAgICAgfQogICAgfQogICAgCiAgICAvLyBjb3V0IDw8IGRpc3Rbbl08PCJcbiI7CiAgICAKICAgIAogICAgaWYoayA+PSAxKXsKICAgICAgICBrLS07CiAgICAgICAgY29yZXNbMV0gPSAxOwogICAgICAgIHN0LmVyYXNlKDEpOwogICAgICAgIGZvcihhdXRvIHg6IGFkalsxXSl7CiAgICAgICAgICAgIGlmKCFrKSBicmVhazsKICAgICAgICAgICAgY29yZXNbeF0gPSAxOwogICAgICAgICAgICBrLS07CiAgICAgICAgICAgIHN0LmVyYXNlKHgpOwogICAgICAgIH0KICAgIH0KCiAgICBpZihrID49IDEpewogICAgICAgIGstLTsKICAgICAgICBjb3Jlc1tuXSA9MTsKICAgICAgICBzdC5lcmFzZShuKTsKICAgICAgICBmb3IoYXV0byB4OiBhZGpbbl0pewogICAgICAgICAgICBpZighc3Quc2l6ZSgpIHx8IHN0LmZpbmQoeCkgPT0gc3QuZW5kKCkpIGNvbnRpbnVlOwogICAgICAgICAgICBpZighaykgYnJlYWs7CiAgICAgICAgICAgIGstLTsKICAgICAgICAgICAgc3QuZXJhc2UoeCk7CiAgICAgICAgfQogICAgfQoKICAgIGZvcihhdXRvIHg6IHN0KSBjb3Jlc1t4XSA9IDI7CiAgICBmb3IoaW50IGkgPSAxOyBpPD0gbjsgaSsrKXsKICAgICAgICBpZihjb3Jlc1tpXSA9PSAyKSBjb3V0IDw8ICJTIjsKICAgICAgICBlbHNlIGNvdXQgPDwiTiI7CiAgICB9CiAgICBjb3V0IDw8IlxuIjsKCgp9CgppbnQzMl90IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKG51bGxwdHIpOwoKICAgIGludCB0dHQgPSAxOwogICAgLy8gY2luID4+IHR0dDsKICAgIHdoaWxlKHR0dC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KICAgIHJldHVybiAwOwp9