/*
TASK:trip
LANG:C++
*/
#include<iostream>
using namespace std;
int mat[1002][1002],v[502],n,m,k,ma=1000;
void init(){
int a,b;
cin>>n>>m>>k;
for(int i=0;i<m;i++){
cin>>a>>b;
mat[a][b]=1;
mat[b][a]=1;
}
for(int i=0;i<k;i++){cin>>a;v[a]=1;}
}

void trip(int a,int b,int w){
         if(a==b){if(w<ma)ma=w;return;}
         for(int i=1;i<=n;i++){
                 if(mat[a][i]){
                               mat[a][i]=0;
                               mat[i][a]=0;
                               trip(i,b,w+1);
                               mat[a][i]=1;
                               mat[i][a]=1;
                               }
                 }
}

int main(){
init();
for(int i=1;i<n-1;i++){
        if(v[i])continue;
        for(int j=i+1;j<n;j++){
                if(v[j])continue;
                trip(i,j,0);                     
                }
}
cout<<ma+1;
/*
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)cout<<mat[i][j];
cout<<endl;
}*/

return 0;    
}
