#include <bits/stdc++.h>
using namespace std;
vector< int > vis , id;
vector< vector< int > > graph;
void dfs( int node , int cnt)
{
	vis[node] = 1;
	id[node] = cnt;
	for( int u : graph[node] )
	{
		if( !vis[u] )
			dfs(u,cnt);
	}
}
int main()
{
	int nodes, edges;
	cin >> nodes;      // input number of nodes in graph
	cin >> edges;
	vis.resize(nodes+1, 0);
	id.resize(nodes+1, 0);
	graph.resize(nodes+1);
	for( int i = 0 ; i < edges ; i++)
	{
		int u , v ;
		cin >> u >> v;
		graph[u].push_back(v);      // we can use a pair of (v,cost) in case of weighted graph
		graph[v].push_back(u);      // if graph is Directed this line will be omitted.
	}
	
	int cnt = 1 ;
	for( int i =1 ; i <= nodes ; i++)
	{
		if( !vis[i] )
		{
			dfs(i, cnt++);
		}

	}
	
	while(true)
	{
		int a, b ;
		cin >> a >> b;
		if( id[a] == id[b] )
			cout << "In same connected component\n";
		else cout << "In different connected component\n";
	}

	return 0;
}