from collections import deque, defaultdict, Counter from bisect import bisect_left, bisect_right, insort from itertools import permutations, combinations, groupby from heapq import heappop, heappush import math, sys input = lambda: sys.stdin.readline().rstrip("\r\n") def printl(li, sep=" "): print(sep.join(map(str, li))) def yn(flag): print(Yes if flag else No) _int = lambda x: int(x)-1 MOD = 998244353 #10**9+7 INF = 1<<60 Yes, No = "infinite", "finite" for _ in range(int(input())): H, W = map(int, input().split()) A = [list(map(int, input().split())) for _ in range(H)] def same(i, j, a, b): if i == a or j == b: return True if i-j == a-b or i+j == a+b: return True return False ans = False for i in range(H): for j in range(W): for a in range(H): for b in range(W): if (i, j) == (a, b): continue if not same(i, j, a, b): continue if A[i][j] < 0 or A[a][b] < 0: continue if A[i][j] == 0 and A[a][b] == 0: continue ans = True yn(ans)