Unkown:
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
using namespace std;
const int maxn = 1e3+7;
int n,m;
vector<int> e[maxn];
vector<int> g[maxn];
int low[maxn],dfn[maxn],ind,ins[maxn],scc,contract[maxn],top;
int d[maxn];
int stk[maxn];
int vis[maxn];
void ini(){
for(int i = 0;i<maxn;i++){
d[i] = low[i] = dfn[i] = 0;
contract[i] = i;
e[i].clear();
g[i].clear();
vis[i] = 0;
}
top = scc = 0;
ind = 0;
}
int tarjan(int u) {
int v;
low[u] = dfn[u] = ++ind;
stk[top++] = u;
ins[u] = true;
for(int i = 0;i<e[u].size();i++) {
v = e[u][i];
if(!dfn[v]) {
tarjan(v);
if(low[u] > low[v])
low[u] = low[v];
}
else if(ins[v] && low[u] > dfn[v])
low[u] = dfn[v];
}
if(low[u] == dfn[u]) {
scc++;
do {
v = stk[--top];
contract[v] = scc;
ins[v] = false;
}
while( v!= u );
}
}
int dfs(int n,int dep){
for(int i = 0;i<g[n].size();i++){
int to = g[n][i];
if(vis[to] == 0) return dfs(to,dep+1);
}
return dep;
}
int main() {
int t;cin >> t;
while(t--){
ini();
cin >> n >> m;
for(int i = 0;i<m;i++){
int u,v;
cin >> u >> v;
e[u].push_back(v);
}
for(int i = 1;i<=n;i++){
if(dfn[i] == 0) tarjan(i);
}
for(int i = 1;i<=n;i++){
for(int j = 0;j<e[i].size();j++){
int to = e[i][j];
if(contract[to] != contract[i]){
g[contract[i]].push_back(contract[to]);
d[contract[to]]++;
}
}
}
int pos = 0,cnt= 0;
for(int i = 1;i<=scc;i++){
if(d[i] == 0){
pos = i;
cnt++;
}
}
int maxdp =0;
if(cnt == 1){
maxdp = max(maxdp,dfs(pos,1));
}
if(maxdp == scc && cnt == 1){
cout << "I love you my love and our love save us!" << endl;
}else{
cout << "Light my fire!" << endl;
}
}
return 0;
}