#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");
}
