← Home
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))
	}
}