def f1(x,y):
    print(x+1,y-1)
    print(x,y-1)
    print(x+1,y)
    x += 1
    for i in range(m//2-1):
        y += 1
        print(x,y)
        x -= 1
        y += 1
        print(x,y)
        y -= 1
        print(x,y)
        x += 1
        y += 1
        print(x,y)
    return x,y

def f2(x,y):
    for i in range(m//2-1):
        x += 1
        y -= 1
        print(x,y)
        y += 1
        print(x,y)
        x -= 1
        y -= 1
        print(x,y)
        y -= 1
        print(x,y)
    print(x+1,y-1)
    print(x,y-1)
    print(x+1,y)
    x += 1
    return x,y


def solve(n,m):
    if n==m==1:
        print(0)
        print(1,1)
        return
    if n%2==1 or m%2==1:
        print(-1)
        return
    print(n*m-1)
    print(1,2)
    x,y = 1,2
    i = n//2
    while True:
        x,y = f1(x,y)
        i -= 1
        if i==0: break
        print(x+1,y)
        x,y = f2(x+1,y)
        i -= 1
        if i==0: break
        print(x+1,y)
        x += 1
    
T = int(input())
for _ in range(T):
    n,m = map(int,input().split())
    solve(n,m)