#include"stdio.h" #include"string.h" #pragma comment(linker, "/STACK:1024000000,1024000000") #define inf 99999999 int min(int a,int b) { return a0) { level[edge[k].to]=level[top]+1; q[rear++]=edge[k].to; } } } return false; } int dfs(int now,int maxf,int t) { int ret=0,f,k; if(now==t) return maxf; for(k=head[now];k!=-1;k=edge[k].next) { if(level[edge[k].to]==level[now]+1&&edge[k].val>0) { f=dfs(edge[k].to,min(maxf-ret,edge[k].val),t); edge[k].val-=f; edge[k^1].val+=f; ret+=f; if(ret==maxf) return ret; } } if(ret==0) level[now]=0; return ret; } int dinic(int s,int t) { int ans=0; while(bfs(s,t)) ans+=dfs(s,inf,t); return ans; } int main( ) { int T,i,n,m,s,t; int x,y,w,ps,pt; scanf("%d",&T); while(T--) { e=0;s=inf;t=0; memset(head,-1,sizeof(head)); scanf("%d%d",&n,&m); for(i=1;i<=n;i++) { scanf("%d%d",&x,&y); if(s>x) {s=x;ps=i;} if(t