#include <cstdio>
#include <iostream>
#include <cmath>
#include <iomanip>
#include <cstring>
#include <fstream>
#include <algorithm>
#include <queue>
#include <utility>
#include <vector>
#define FOR(i,a,b) for(int i = (a); i <= (b); i++)
#define FORD(i,a,b) for(int i = (a); i >= (b); i--)
#define maxn 100003
#define task "cycle"
typedef char NameFile[1000];
using namespace std;
NameFile input, output, answer;
ifstream fi, fo, fa;
int n, m;
vector <int> a[100001];
int readInput()
{
fi.open(input);
}
int readOutput()
{
fo.open(output);
}
int readAnswer()
{
fa.open(answer);
}
int check()
{
int u,v;
fi>>n>>m;
FOR(i,1,m)
{
fi>>u>>v;
a[u].push_back(v);
a[v].push_back(u);
}
int numa=0;
int luua[100001];
fo>>numa;
cout<<"So dinh: "<<numa<<endl;
if(numa<4) {cout<<"So dinh trong chu trinh phai >3"<<endl; return 0;}
for(int i=1;i<=numa;i++) fo>>luua[i];
if(luua[1]!=luua[numa]) {cout<<"Dinh dau va cuoi khac nhau"<<endl; return 0;}
FOR(i,2,numa)
{
u=luua[i-1];
v=luua[i];
if(u<1||v<1||u>n||v>n) {cout<<"canh khong thuoc G"<<endl;return 0;}
int ok=0;
FOR(x,0,a[u].size()-1)
if(v==a[u][x]) ok=1;
if(ok==1) return 1;
}
cout<<"ket qua sai"<<endl;
return 0;
}
main()
{
gets(input);
gets(output);
strcpy(answer, input);
strcat(input, task".inp");
strcat(output, task".out");
strcat(answer, task".out");
readInput();
readOutput();
readAnswer();
if(check()) cout<<"Ket qua dung"<<endl<<0.50;
else cout<<0.00;
fi.close();
fo.close();
fa.close();
// system("pause");
}