t,r = map(int,input().split()) p = 1 for _ in range(t): n,*S = map(int,input().split()) S,idx = zip(*sorted([(s,i) for i,s in enumerate(S,p)])) dp = [-float("inf")]*(n+1) dp[0] = 0 prev = [-1]*(n+1) for i in range(1,n+1): for j in range(1,5): if i-j >= 0: temp = dp[i-j]+j*(j-1)//2*(200-(S[i-1]-S[i-j])**2) if dp[i] < temp: dp[i] = temp prev[i] = i-j L = [] now = n while now > 0: nxt = prev[now] for i in range(nxt,now-1): L.append((idx[i]+p,idx[i+1]+p)) now = nxt print(len(L),flush=True) for u,v in L: print(u,v,flush=True) p += n