from dataclasses import dataclass
from itertools import chain

@dataclass
class punkt:
    x: int = 0
    y: int = 0
    indeks_w_wierszu: int = 0
    indeks_w_kolumnie: int = 0

class drzewo_przedzialowe:
    def __init__(self, rozmiar: int):
        self._tablica = [0] * (2 << (rozmiar - 1).bit_length())

    def rozmiar(self):
        return len(self._tablica) // 2

    def ustaw(self, indeks: int, wartosc: int):
        i = indeks + self.rozmiar()
        roznica = wartosc - self._tablica[i]
        while i != 0:
            self._tablica[i] += roznica
            i >>= 1

    def wartosc(self, indeks: int):
        return self._tablica[indeks + self.rozmiar()]

    def suma(self, lewo: int, prawo: int):
        lewo += self.rozmiar()
        prawo += self.rozmiar()
        wynik = 0
        while lewo != prawo:
            if lewo & 1:
                wynik += self._tablica[lewo]
                lewo += 1
            if prawo & 1:
                wynik += self._tablica[prawo - 1]
            lewo >>= 1
            prawo >>= 1
        return wynik

def rozwiaz():
    w, h, n = [int(x) for x in input().split()]
    pale = []
    pale_wg_wiersza = [[] for _ in range(w)]
    pale_wg_kolumny = [[] for _ in range(h)]
    for i in range(n):
        p = punkt()
        p.x, p.y = [int(x) for x in input().split()]
        p.x -= 1
        p.y -= 1
        p.indeks_w_wierszu = len(pale_wg_wiersza[p.x])
        p.indeks_w_kolumnie = len(pale_wg_kolumny[p.y])
        pale.append(p)
        pale_wg_wiersza[p.x].append(i)
        pale_wg_kolumny[p.y].append(i)
    if any(len(a) % 2 != 0 for a in chain(pale_wg_wiersza, pale_wg_kolumny)):
        return 0
    indeks = 0
    odwiedzone = 0
    while True:
        indeks = pale_wg_wiersza[pale[indeks].x][pale[indeks].indeks_w_wierszu ^ 1]
        indeks = pale_wg_kolumny[pale[indeks].y][pale[indeks].indeks_w_kolumnie ^ 1]
        odwiedzone += 2
        if indeks == 0:
            break
    if odwiedzone != n:
        return 0
    otwarcie_linii_poziomej = -1
    otwarcia_linii_pionowych = drzewo_przedzialowe(w)
    for p in pale:
        if otwarcie_linii_poziomej < 0:
            otwarcie_linii_poziomej = p.x
        else:
            if otwarcia_linii_pionowych.suma(otwarcie_linii_poziomej + 1, p.x) != 0:
                return 0
            otwarcie_linii_poziomej = -1
        otwarcia_linii_pionowych.ustaw(p.x, otwarcia_linii_pionowych.wartosc(p.x) ^ 1)
    return 1

t = int(input())
for _ in range(t):
    print(rozwiaz())
