Boris 想要販售美麗的項鍊。他請教了最優秀的設計師與珠寶商,以發明出最完美的項鍊。現在他需要你的幫助,來判斷是否存在一條符合他期望的完美項鍊。
Boris 想要製作的項鍊由 $3k$ 顆寶石組成,其中 $k$ 是項鍊的長度。任意長度 $k \ge 2$ 都是允許的。這些寶石排成三列,每列有 $k$ 顆寶石。所有寶石都有各自的類型(以整數識別)。我們將第一列由左至右的寶石類型定義為 $a_1, a_2, \dots, a_k$,第二列定義為 $b_1, b_2, \dots, b_k$,第三列定義為 $c_1, c_2, \dots, c_k$。
$k = 4$ 時的項鍊範例
一條項鍊有 $k$ 個後向行(backward columns)與 $k$ 個前向行(forward columns)。每一行包含 $3$ 顆寶石。每一行中寶石的順序非常重要。後向行依次為 $(a_1, b_1, c_2), (a_2, b_2, c_3), \dots, (a_i, b_i, c_{i+1}), \dots, (a_k, b_k, c_1)$。前向行依次為 $(a_2, b_1, c_1), (a_3, b_2, c_2), \dots, (a_{i+1}, b_i, c_i), \dots, (a_1, b_k, c_k)$。
後向行
前向行
Boris 有 $n$ 種美麗後向行的選項 $\{(x_i, y_i, z_i)\}_{i=1}^n$,以及 $m$ 種美麗前向行的選項 $\{(u_i, v_i, w_i)\}_{i=1}^m$。他說如果一條項鍊的所有行都是美麗的(即每一行都存在於對應的美麗行集合中),那麼這條項鍊就是美麗的。請判斷是否存在長度 $\ge 2$ 的美麗項鍊。
此外,Boris 保證所有的 $y_i$ 皆不相同。注意,這項保證僅針對美麗後向行中間的寶石,因此其他數字可能相等。
輸入格式
每個輸入包含多組測試資料。第一行包含一個整數 $t$($1 \le t \le 10^5$)——測試資料的組數。接下來是各組測試資料的描述。
每組測試資料的第一行包含兩個整數 $n$、$m$($1 \le n, m \le 10^5$)——美麗後向行的數量與美麗前向行的數量。
接下來的 $n$ 行,每行包含三個整數 $x_i, y_i, z_i$($1 \le x_i, y_i, z_i \le 10^9$),描述下一個美麗後向行。
接下來的 $m$ 行,每行包含三個整數 $u_i, v_i, w_i$($1 \le u_i, v_i, w_i \le 10^9$),描述下一個美麗前向行。
保證在每組測試資料中,所有的 $y_i$ 皆不相同。
保證所有測試資料中 $n$ 的總和與 $m$ 的總和皆不超過 $10^5$。
輸出格式
對於每組測試資料,若存在長度 $\ge 2$ 的美麗項鍊,請輸出單一單字「YES」,否則輸出「NO」。
你可以以任意大小寫輸出每個字母。
範例
輸入格式 1
3 3 5 1 1 2 2 3 1 3 2 1 1 3 1 2 1 2 1 1 1 2 2 2 3 1 2 4 4 2 2 2 1 3 1 2 1 1 4 4 4 1 2 1 1 3 2 1 1 1 2 1 2 1 1 1 1 1 1 1 1
輸出格式 1
YES NO YES
說明
第一組測試資料的美麗項鍊範例(長度為 $4$):