#include<bits/stdc++.h>
#pragma GCC optimeze(1)
#pragma GCC optimeze(2)
#pragma GCC optimeze(3,"Ofast","inline")
using namespace std;
int n,m,a[10001],b[10001],c[10001],heap[1919810],heap_size;
void put(int x) {
int son,pa;
heap[++heap_size]=x;
son=heap_size;
while(son>1) {
pa=son>>1;
if(heap[son]>=heap[pa]) {
break;
}
else {
swap(heap[son],heap[pa]);
}
son=pa;
}
return;
}
int get() {
int pa,son,res;
res=heap[1];
heap[1]=heap[heap_size--];
pa=1;
while(pa*2<=heap_size) {
son=pa*2;
if(son<heap_size&&heap[son+1]<heap[son]) {
son++;
}
if(heap[pa]<=heap[son]) {
break;
}
swap(heap[pa],heap[son]);
pa=son;
}
return res;
}
int main() {
ios::sync_with_stdio(false);
cin>>n>>m;
for(int i=1;i<=n;i++) {
cin>>a[i]>>b[i]>>c[i];
}
for(int i=1;i<=n;i++) {
for(int j=1;j<=10;j++) {
put(a[i]*j*j+b[i]*j+c[i]);
}
}
for(int i=1;i<=m;i++) {
cout<<get()<<" ";
}
return 0;
}