#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <queue>
#include <set>
#define pb push_back
#define mp make_pair
using namespace std;
string s;
int n,m,k;
bool sf[200010],vis[200010];
vector<int> g[200010];
vector<pair<int,int>>v;
int bfs(bool f){
queue<pair<int,int>>q;
q.push(mp(0,0));
vis[0]=true;
while(!q.empty()){
int u=q.front().first;
for(int i=0;i<g[u].size();i++){
if(!vis[g[u][i]]){
if(g[u][i]==n-1){
int ans=q.front().second+1;
while(!q.empty())
q.pop();
return ans;
}
if(sf[g[u][i]]&&!f)
v.pb(mp(q.front().second+1,g[u][i]));
q.push(mp(g[u][i],q.front().second+1));
vis[g[u][i]]=true;
}
}
q.pop();
}
return 0;
}
int main(){
scanf("%d%d%d",&n,&m,&k);
for(int a,i=0;i<k;i++){
scanf("%d",&a);a--;
sf[a]=true;
}
for(int a,b,i=0;i<m;i++){
scanf("%d%d",&a,&b);
a--;b--;
g[a].pb(b);
g[b].pb(a);
}
bfs(false);
sort(v.begin(),v.end());
int mn=1e8;
pair<int,int> p={0,0};
for(int i=0;i<k-1;i++){
if(v[i+1].first-v[i].first<mn){
mn=v[i+1].first-v[i].first;
p=mp(v[i].second,v[i+1].second);
}
}
for(int i=0;i<n;i++)
vis[i]=false;
g[p.first].pb(p.second);
g[p.second].pb(p.first);
printf("%d",bfs(true));
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8cXVldWU+CiNpbmNsdWRlIDxzZXQ+CiNkZWZpbmUgcGIgcHVzaF9iYWNrCiNkZWZpbmUgbXAgbWFrZV9wYWlyCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cmluZyBzOwppbnQgbixtLGs7CmJvb2wgc2ZbMjAwMDEwXSx2aXNbMjAwMDEwXTsKdmVjdG9yPGludD4gZ1syMDAwMTBdOwp2ZWN0b3I8cGFpcjxpbnQsaW50Pj52OwppbnQgYmZzKGJvb2wgZil7CiAgICBxdWV1ZTxwYWlyPGludCxpbnQ+PnE7CiAgICBxLnB1c2gobXAoMCwwKSk7CiAgICB2aXNbMF09dHJ1ZTsKICAgIHdoaWxlKCFxLmVtcHR5KCkpewogICAgICAgIGludCB1PXEuZnJvbnQoKS5maXJzdDsKICAgICAgICBmb3IoaW50IGk9MDtpPGdbdV0uc2l6ZSgpO2krKyl7CiAgICAgICAgICAgIGlmKCF2aXNbZ1t1XVtpXV0pewogICAgICAgICAgICAgICAgaWYoZ1t1XVtpXT09bi0xKXsKICAgICAgICAgICAgICAgICAgICBpbnQgYW5zPXEuZnJvbnQoKS5zZWNvbmQrMTsKICAgICAgICAgICAgICAgICAgICB3aGlsZSghcS5lbXB0eSgpKQogICAgICAgICAgICAgICAgICAgICAgICBxLnBvcCgpOwogICAgICAgICAgICAgICAgICAgIHJldHVybiBhbnM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZihzZltnW3VdW2ldXSYmIWYpCiAgICAgICAgICAgICAgICAgICAgdi5wYihtcChxLmZyb250KCkuc2Vjb25kKzEsZ1t1XVtpXSkpOwogICAgICAgICAgICAgICAgcS5wdXNoKG1wKGdbdV1baV0scS5mcm9udCgpLnNlY29uZCsxKSk7CiAgICAgICAgICAgICAgICB2aXNbZ1t1XVtpXV09dHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBxLnBvcCgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0KaW50IG1haW4oKXsKICAgIHNjYW5mKCIlZCVkJWQiLCZuLCZtLCZrKTsKICAgIGZvcihpbnQgYSxpPTA7aTxrO2krKyl7CiAgICAgICAgc2NhbmYoIiVkIiwmYSk7YS0tOwogICAgICAgIHNmW2FdPXRydWU7CiAgICB9CiAgICBmb3IoaW50IGEsYixpPTA7aTxtO2krKyl7CiAgICAgICAgc2NhbmYoIiVkJWQiLCZhLCZiKTsKICAgICAgICBhLS07Yi0tOwogICAgICAgIGdbYV0ucGIoYik7CiAgICAgICAgZ1tiXS5wYihhKTsKICAgIH0KICAgIGJmcyhmYWxzZSk7CiAgICBzb3J0KHYuYmVnaW4oKSx2LmVuZCgpKTsKICAgIGludCBtbj0xZTg7CiAgICBwYWlyPGludCxpbnQ+IHA9ezAsMH07CiAgICBmb3IoaW50IGk9MDtpPGstMTtpKyspewogICAgICAgIGlmKHZbaSsxXS5maXJzdC12W2ldLmZpcnN0PG1uKXsKICAgICAgICAgICAgbW49dltpKzFdLmZpcnN0LXZbaV0uZmlyc3Q7CiAgICAgICAgICAgIHA9bXAodltpXS5zZWNvbmQsdltpKzFdLnNlY29uZCk7CiAgICAgICAgfQogICAgfQogICAgZm9yKGludCBpPTA7aTxuO2krKykKICAgICAgICB2aXNbaV09ZmFsc2U7CiAgICBnW3AuZmlyc3RdLnBiKHAuc2Vjb25kKTsKICAgIGdbcC5zZWNvbmRdLnBiKHAuZmlyc3QpOwogICAgcHJpbnRmKCIlZCIsYmZzKHRydWUpKTsKICAgICAgICAKfQoKCg==