from math import sqrt from collections import defaultdict from operator import itemgetter def solve(): N, L = map(int, input().split()) B = round(L / sqrt(N)) block = defaultdict(list) for i in range(N): X, Y = map(int, input().split()) if Y == 0: j = 0 else: j = (Y-1)//B block[j].append((X,Y)) A = [] for j in sorted(block.keys()): if j % 2 == 0: block[j].sort(key=itemgetter(0)) else: block[j].sort(key=itemgetter(0), reverse=True) A.extend(block[j]) print(len(A)) for x,y in A: print(x,y) #================================================== import sys input=sys.stdin.readline write=sys.stdout.write T = int(input()) for t in range(T): solve()