#include #define mst(a,b) memset(a,b,sizeof(a)) #define lowbit(x) ((x)&(-x)) #define X first #define Y second #define lc o<<1 #define rc o<<1|1 using namespace std; typedef long long LL; typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pdd; typedef pair pll; const int inf = 0x3f3f3f3f; const ll INF = 0x3f3f3f3f3f3f3f3f; const int maxn = 50+10; const int maxm = 100000+10; const int mod = 998244353; const double eps = 1e-8; bool isDead[maxn]; int a[maxn][maxn]; int main() { #ifdef local freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); #endif ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); int T; cin >> T; while (T--) { int n; cin >> n; mst(isDead, 0); int lang = 0; for (int i = 1; i <= n; ++i) { int idt; cin >> idt; if (idt) { lang = i; } } for (int i = 1; i <= n; ++i) for (int j = 1; j <= n; ++j){ cin >> a[i][j]; } int alive = n - 1; int die = a[lang][1]; isDead[die] = true; while (alive > 2 && !isDead[lang]) { for (int i = 1; i <= n; ++i) { if (!isDead[a[die][i]]) { isDead[a[die][i]] = true; --alive; die = a[die][i]; break; } } } if (isDead[lang]) { cout << "lieren\n"; } else { cout << "langren\n"; } } return 0; }