# coding: utf-8
# Your code here!
import sys
readline = sys.stdin.readline
read = sys.stdin.read

n,m = [int(i) for i in readline().split()]
yoko = [[int(i) for i in readline().split()] for _ in range(n)]
tate = [[int(i) for i in readline().split()] for _ in range(m)]

INF = 10**9+5
xcoord = [-INF,0,INF]
ycoord = [-INF,0,INF]

for a,b,c in yoko: # (a,c) to (b,c)
    xcoord.append(a)
    xcoord.append(b)
    ycoord.append(c)
for d,e,f in tate: # (d,e) to (d,f)
    ycoord.append(e)
    ycoord.append(f)
    xcoord.append(d)

xcoord = list(sorted(set(xcoord)))
ycoord = list(sorted(set(ycoord)))

zaatu_x = {a:i for i,a in enumerate(xcoord)}
zaatu_y = {a:i for i,a in enumerate(ycoord)}

P = len(xcoord)
Q = len(ycoord)

ok = [[[1,1,1,1] for y in range(Q-1)] for x in range(P-1)] #移動できる方角
for y in range(Q-1):
    ok[0][y][2] = 0
    ok[P-2][y][0] = 0
for x in range(P-1):
    ok[x][0][3] = 0
    ok[x][Q-2][1] = 0

for a,b,c in yoko: # (a,c) to (b,c)
    xa = zaatu_x[a]
    xb = zaatu_x[b]
    yc = zaatu_y[c]
    for i in range(xa,xb):
        ok[i][yc][3] = 0
        ok[i][yc-1][1] = 0

for d,e,f in tate: # (d,e) to (d,f)
    ye = zaatu_y[e]
    yf = zaatu_y[f]
    xd = zaatu_x[d]
    for i in range(ye,yf):
        ok[xd][i][2] = 0
        ok[xd-1][i][0] = 0

dx = [1,0,-1,0]
dy = [0,1,0,-1]

x0 = zaatu_x[0]
y0 = zaatu_y[0]

used = [[0 for y in range(Q-1)] for x in range(P-1)]

from collections import deque
q = deque([(x0,y0)])
used[x0][y0] = 1

while q:
    x,y = q.popleft()
    for i,oki in enumerate(ok[x][y]):
        if oki:
            nx = x+dx[i]
            ny = y+dy[i]
            if used[nx][ny] == 0:
                used[nx][ny] = 1
                q.append((nx,ny))


#print(used)

if used[0][0] == 1:
    print("INF")
else:
    ans = 0
    for i in range(P-1):
        for j in range(Q-1):
            if used[i][j] == 1:
                ans += (xcoord[i+1]-xcoord[i])*(ycoord[j+1]-ycoord[j])
    print(ans)

#print(xcoord)
#print(ycoord)






