#include<bits/stdc++.h>
using namespace std;
int n,m;
priority_queue<int,vector<int>,greater<int> >q;
struct node{
int a,b,c,x=1;
};
node a[100005];
int f(node a){
return a.a*(a.x*a.x)+a.b*a.x+a.c;
}
bool cmp(node a,node b){
if(a.a!=b.a)return a.a<b.a;
else{
if(a.b!=b.b) return a.b<b.b;
return a.c<b.c;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++)cin>>a[i].a>>a[i].b>>a[i].c;
sort(a+1,a+n+1,cmp);
int l=1;
while(q.size()<m){
q.push(f(a[l]));
a[l].x++;
if(l==n){
l=1;
continue;
}
l++;
}
for(int i=1;i<=m;i++){
cout<<q.top()<<' ';
q.pop();
}
return 0;
}