Poi2013 Inspector

时间限制:10s      空间限制:128MB


Inspector Byteasar is investigating a crime that took place on the premises of a software development company. He is trying to establish the chain of events. Unfortunately, the programmers are rather scatterbrained. Statements of the kind "Well, when I checked at 14:42, there were five other programmers logged in on the server." are the most informative of those that Byteasar could get.
It is known that every programmer came to office at some point during that day, spent some time in there without going out, and then left for good, never coming back on the same day.
Byteasar, confused by the programmers' statements, is not sure if he should rely on them. In fact, he is wondering whether it is at all possible that they all tell the truth. He asks you for help in finding that out.


In the first line of the standard input, there is an integer Z (1<=Z<=50) , the number of data sets. The lines that follow contain the Z data sets.
The first line of each data set holds two integers, N  and M , separated by a single space(1<=N,M<=100000) . These are the number of programmers working in the office and the number of statements recorded by Byteasar. The programmers are numbered from 1 to N.
Each of the m lines that follow describes a single statement. Each such line contains three integers  ,  , and  , separated by single spaces 1<=T<=M,1<=j<=N 0<=i<=N
These indicate that the programmer no.   confessed that at time   he was in the office and there were   more programmers apart from him. We assume that the programmers came in to the office and left it at times different from those appearing in the statements, i.e., either before, after or in between them.


For each data set, your program should print a single positive integer to the standard output. Printing out the number K(1<=K<=M) indicates that the first   statements given on the input can be true but the first K+1  statements cannot. In particular, if K=M, then all the statements given as input can be true.


3 5
1 1 1
1 2 1
2 3 1
4 1 1
4 2 1
3 3
3 3 0
2 2 0
1 1 0


Explanation of the example: In the first data set, the statements given by programmers cannot all be true. The programmers 1 and 2 stated that they were in the office between times 1 and 4 but the programmer 3 stated that at time 2 there was only a single person apart from him there. If we discount that last statement, the remaining ones can be true.