package main
import (
"bufio"
"fmt"
"os"
)
type FastScanner struct {
r *bufio.Reader
}
func NewFastScanner() *FastScanner {
return &FastScanner{r: bufio.NewReader(os.Stdin)}
}
func (fs *FastScanner) NextInt() int {
sign := 1
val := 0
c, _ := fs.r.ReadByte()
for (c < '0' || c > '9') && c != '-' {
c, _ = fs.r.ReadByte()
}
if c == '-' {
sign = -1
c, _ = fs.r.ReadByte()
}
for c >= '0' && c <= '9' {
val = val*10 + int(c-'0')
c, _ = fs.r.ReadByte()
}
return val * sign
}
func main() {
in := NewFastScanner()
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
// Precompute Fibonacci numbers with f1=1, f2=2 up to at least 11
fib := make([]int, 12)
fib[1] = 1
fib[2] = 2
for i := 3; i < len(fib); i++ {
fib[i] = fib[i-1] + fib[i-2]
}
t := in.NextInt()
for ; t > 0; t-- {
n := in.NextInt()
m := in.NextInt()
need1 := fib[n]
need2 := fib[n+1]
ans := make([]byte, m)
for i := 0; i < m; i++ {
w := in.NextInt()
l := in.NextInt()
h := in.NextInt()
// sort a<=b<=c
a, b, c := w, l, h
if a > b {
a, b = b, a
}
if b > c {
b, c = c, b
}
if a > b {
a, b = b, a
}
if a >= need1 && b >= need1 && c >= need2 {
ans[i] = '1'
} else {
ans[i] = '0'
}
}
fmt.Fprintln(out, string(ans))
}
}