#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
const int SIZE = 1 << 17;
int a[SIZE], b[SIZE], c[SIZE];
long long f(int subscript, long long x) {
    return a[subscript] * x * x + b[subscript] * x + c[subscript];
}
int v[SIZE];
void solve() {
    int n, K;
    cin >> n >> K;
    long long an = 0;
    priority_queue<pair<long long, int>> pq;
    for(int i = 0; i < n; i++) {
        cin >> a[i] >> b[i] >> c[i];
        an += f(i, 0);
        v[i] = 0;
        pq.push({f(i, 0) - f(i, 1), i});
    }
    while(K--) {
        long long inc = pq.top().first;
        int id = pq.top().second;
        pq.pop();
        an -= inc;
        v[id]++;
        pq.push({f(id, v[id]) - f(id, v[id] + 1), id});
    }
    cout << an << '\n';
}
int main() {
    cin.tie(0);
    ios_base::sync_with_stdio(false);
    solve();
    return 0;
}