#include<bits/stdc++.h>
using namespace std;
#define for1(i,m,n) for(int i=m;i<=n;i++)
#define for0(i,m,n) for(int i=m;i<n;i++)
#define int long long
#define el '\n'
#define fi first
#define se second
#define ii pair<int,int>
#define vll(i) i.begin(),i.end()
#define pb push_back
const int N=2*1e5;
const int mod=1e9+7;
int n_,m,w,k,s;
int v[111];
unordered_map<int,int>pre;
vector<int> n[111],p;
int dinh_to_so(int x,int y){
return x*(s+1)+y;
}
void so_to_dinh(int p,int &x,int &y){
x=p/(s+1);
y=p%(s+1);
}
signed main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
// freopen("bai1.INP","r",stdin);
// freopen("bai1.OUT","w",stdout);
cin>>n_>>m>>w>>k>>s;
for1(i,1,n_) cin>>v[i];
while(m--){
int x,y;cin>>x>>y;
n[x].pb(y);
n[y].pb(x);
}
queue<int>q;
q.push(dinh_to_so(k,s));
pre[dinh_to_so(k,s)]=-1;
while(!q.empty()){
int x,y;
so_to_dinh(q.front(),x,y);
//cout<<x<<' '<<y<<el;
for(auto u:n[x]){
// cout<<u<<' '<<v[u]<<' '<<y-v[x]<<el;
// cout<<d[u]<<' '<<d[x]+1<<el;
if(v[u]<=y-v[x]){
int next =dinh_to_so(u,y-v[x]);
if(pre.count(next)){
continue;
}
pre[next]=q.front();
q.push(next);
}
}
q.pop();
}
int dau=dinh_to_so(w,v[w]);
while(dau!=-1){
// cout<<dau<<el;
int x,y;
so_to_dinh(dau,x,y);
p.pb(x);
dau=pre[dau];
}
cout<<p.size()<<" ";
for(auto x:p) cout<<x<<' ';
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgZm9yMShpLG0sbikgZm9yKGludCBpPW07aTw9bjtpKyspCiNkZWZpbmUgZm9yMChpLG0sbikgZm9yKGludCBpPW07aTxuO2krKykKCiNkZWZpbmUgaW50ICBsb25nIGxvbmcKI2RlZmluZSBlbCAnXG4nCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBpaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgdmxsKGkpIGkuYmVnaW4oKSxpLmVuZCgpCiNkZWZpbmUgcGIgcHVzaF9iYWNrCgpjb25zdCBpbnQgTj0yKjFlNTsKY29uc3QgaW50IG1vZD0xZTkrNzsKaW50IG5fLG0sdyxrLHM7CmludCB2WzExMV07CnVub3JkZXJlZF9tYXA8aW50LGludD5wcmU7CnZlY3RvcjxpbnQ+IG5bMTExXSxwOwppbnQgZGluaF90b19zbyhpbnQgeCxpbnQgeSl7CiAgcmV0dXJuIHgqKHMrMSkreTsKfQp2b2lkIHNvX3RvX2RpbmgoaW50IHAsaW50ICZ4LGludCAmeSl7CiAgeD1wLyhzKzEpOwogIHk9cCUocysxKTsKfQoKc2lnbmVkIG1haW4oKXsKICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogIGNpbi50aWUoMCk7CiAgY291dC50aWUoMCk7CiAgLy8gZnJlb3BlbigiYmFpMS5JTlAiLCJyIixzdGRpbik7CiAgLy8gZnJlb3BlbigiYmFpMS5PVVQiLCJ3IixzdGRvdXQpOwoKCmNpbj4+bl8+Pm0+Pnc+Pms+PnM7CmZvcjEoaSwxLG5fKSBjaW4+PnZbaV07CndoaWxlKG0tLSl7CiAgaW50IHgseTtjaW4+Png+Pnk7CiAgblt4XS5wYih5KTsKICBuW3ldLnBiKHgpOwp9CnF1ZXVlPGludD5xOwpxLnB1c2goZGluaF90b19zbyhrLHMpKTsKcHJlW2RpbmhfdG9fc28oayxzKV09LTE7CndoaWxlKCFxLmVtcHR5KCkpewogIGludCB4LHk7CiAgc29fdG9fZGluaChxLmZyb250KCkseCx5KTsKLy9jb3V0PDx4PDwnICc8PHk8PGVsOwogIGZvcihhdXRvIHU6blt4XSl7CiAgIC8vIGNvdXQ8PHU8PCcgJzw8dlt1XTw8JyAnPDx5LXZbeF08PGVsOwogIC8vICBjb3V0PDxkW3VdPDwnICc8PGRbeF0rMTw8ZWw7CiAgICBpZih2W3VdPD15LXZbeF0pewogICAgICBpbnQgbmV4dCA9ZGluaF90b19zbyh1LHktdlt4XSk7CiAgICAgIGlmKHByZS5jb3VudChuZXh0KSl7CiAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgcHJlW25leHRdPXEuZnJvbnQoKTsKICAgICAgcS5wdXNoKG5leHQpOwogICAgfSAKICAgCiAgfQogIHEucG9wKCk7Cn0KaW50IGRhdT1kaW5oX3RvX3NvKHcsdlt3XSk7CndoaWxlKGRhdSE9LTEpewogLy8gY291dDw8ZGF1PDxlbDsKICBpbnQgeCx5OwogIHNvX3RvX2RpbmgoZGF1LHgseSk7CiAgcC5wYih4KTsKICBkYXU9cHJlW2RhdV07Cn0KCgpjb3V0PDxwLnNpemUoKTw8IiAgIjsKZm9yKGF1dG8geDpwKSBjb3V0PDx4PDwnICc7CgogICAgcmV0dXJuIDA7Cn0K