#include <iostream>
using namespace std;
bool findPathExistence(int ** edges,int n,int sv,int ev,bool * visited)
{
if(sv == ev)
return true;
visited[sv] = true;
bool ans = false;
for(int i=0;i<n;i++)
{
if(edges[sv][i] == 1 && !visited[i])
{
ans = findPathExistence(edges,n,i,ev,visited);
if(ans)
return ans;
}
}
return ans;
}
int main() {
int n, E;
cin >> n >> E;
/*
Write Your Code Here
Complete the Rest of the Program
You have to take input and print the output yourself
*/
int ** edges = new int*[n];
for(int i=0;i<n;i++)
{
edges[i] = new int[n];
for(int j=0;j<n;j++)
edges[i][j] = 0;
}
for(int i=0;i<E;i++)
{
int x,y;
cin >> x >> y;
edges[x][y] = 1;
edges[y][x] = 1;
}
bool * visited = new bool[n];
for(int i=0;i<n;i++)
visited[i] = false;
int sv,ev;
cin >> sv >> ev;
if(findPathExistence(edges,n,sv,ev,visited))
cout << "true";
else
cout << "false";
delete [] visited;
for(int i=0;i<n;i++)
delete [] edges[i];
delete [] edges;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpib29sIGZpbmRQYXRoRXhpc3RlbmNlKGludCAqKiBlZGdlcyxpbnQgbixpbnQgc3YsaW50IGV2LGJvb2wgKiB2aXNpdGVkKQp7CiAgICBpZihzdiA9PSBldikKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIHZpc2l0ZWRbc3ZdID0gdHJ1ZTsKICAgIGJvb2wgYW5zID0gZmFsc2U7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgewogICAgICAgIGlmKGVkZ2VzW3N2XVtpXSA9PSAxICYmICF2aXNpdGVkW2ldKQogICAgICAgIHsKICAgICAgICAgICAgYW5zID0gZmluZFBhdGhFeGlzdGVuY2UoZWRnZXMsbixpLGV2LHZpc2l0ZWQpOwogICAgICAgICAgICBpZihhbnMpCiAgICAgICAgICAgICAgICByZXR1cm4gYW5zOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBhbnM7Cn0KaW50IG1haW4oKSB7CiAgICBpbnQgbiwgRTsKICAgIGNpbiA+PiBuID4+IEU7CgogIC8qCgogIAkgICBXcml0ZSBZb3VyIENvZGUgSGVyZQoJICAgQ29tcGxldGUgdGhlIFJlc3Qgb2YgdGhlIFByb2dyYW0KCSAgIFlvdSBoYXZlIHRvIHRha2UgaW5wdXQgYW5kIHByaW50IHRoZSBvdXRwdXQgeW91cnNlbGYKCSAKICAqLwogICAgaW50ICoqIGVkZ2VzID0gbmV3IGludCpbbl07CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKQogICAgewogICAgICAgIGVkZ2VzW2ldID0gbmV3IGludFtuXTsKICAgICAgICBmb3IoaW50IGo9MDtqPG47aisrKQogICAgICAgICAgICBlZGdlc1tpXVtqXSA9IDA7CiAgICB9CiAgICBmb3IoaW50IGk9MDtpPEU7aSsrKQogICAgewogICAgICAgIGludCB4LHk7CiAgICAgICAgY2luID4+IHggPj4geTsKICAgICAgICBlZGdlc1t4XVt5XSA9IDE7CiAgICAgICAgZWRnZXNbeV1beF0gPSAxOwogICAgfQogICAgYm9vbCAqIHZpc2l0ZWQgPSBuZXcgYm9vbFtuXTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgdmlzaXRlZFtpXSA9IGZhbHNlOwogICAgaW50IHN2LGV2OwogICAgY2luID4+IHN2ID4+IGV2OwogICAgaWYoZmluZFBhdGhFeGlzdGVuY2UoZWRnZXMsbixzdixldix2aXNpdGVkKSkKICAgICAgICBjb3V0IDw8ICJ0cnVlIjsKICAgIGVsc2UKICAgICAgICBjb3V0IDw8ICJmYWxzZSI7CiAgICBkZWxldGUgW10gdmlzaXRlZDsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspCiAgICAgICAgZGVsZXRlIFtdIGVkZ2VzW2ldOwogICAgZGVsZXRlIFtdIGVkZ2VzOwogIHJldHVybiAwOwp9Cg==