""" 作戦 0: 等差数列で写真を取る 作戦 1: 上位 L 枚を採用 作戦 2: 山登り 作戦 3: アニーリング 作戦 4: 初期解を頑張る. 作戦 5: 作戦 4 の下でアニーリング 作戦 6: ビームサーチ 作戦 7: 全探索 """ #================================================== # 関数部 def debug(*message): print(*message,file=sys.stderr) def PROBABILITY(delta,temp): if delta>=0: return 1 else: return exp(delta/temp) #================================================== # インポート from operator import itemgetter from time import * from heapq import * from random import * from math import * import sys #================================================== # 入力 N,L,Delta=map(int,input().split()) B=[0]*N; M=[0]*N; E=[0]*N for i in range(N): B[i],M[i],E[i]=map(int,input().split()) #================================================== H=[0]*N; F=[0]*N for i in range(N): H[i]=(B[i]-M[i])//E[i] F[i]=2*B[i]*H[i]-E[i]*H[i]*H[i] #================================================== BEGIN_TIME=time() TIME_LIMIT=1.000 SECOND_PHASE=0.800 #================================================== S=[0] X=[0]*N; A=B.copy(); D=[1]*N coef=pow(10,7)*2/(N*(N-1)) while time()-BEGIN_TIME=Delta if flag: T.append(u) if len(T)==L: break T.sort(); T=[0]+T+[len(S)+Delta] #================================================== BEGIN_TIME=time() while time()-BEGIN_TIME<0: pass #================================================== T=T[1:L+1] print(len(T)) print(*T)