#include <bits/stdc++.h>
#define IO_OP std::ios::sync_with_stdio(0); std::cin.tie(0);
#define F first
#define S second
#define PB push_back
#define MP make_pair
#define EB emplace_back
#define ALL(c) c.begin(),c.end()
#define INF int(1e9+7)

using namespace std;

typedef long long ll;
typedef pair<int, int> pi;
typedef vector<int> vi;

bool ok[100006];

int main()
{
	IO_OP;

	int k, n;
	cin >> n >> k;
	vector<pi> v(n);
	for(int i=0;i<n;i++)
		cin >> v[i].S >> v[i].F;
	sort(v.begin(), v.end(), greater<pi>());
	priority_queue<int, vi, greater<int>> pq;
	long long cnt = 0, x = 0, ans = 0;
	for(int i=0;i<k;i++) {
		if(ok[v[i].S] == 0)
			ok[v[i].S] = 1, x++;
		else
			pq.push(v[i].F);
		cnt += v[i].F;
	}
	ans = cnt + x*x;
	for (int i = k; i < n && x < k; i++) {
		cnt -= pq.top();
		pq.pop();
		if(ok[v[i].S] == 0)
			ok[v[i].S] = 1, x++;
		else
			pq.push(v[i].F);
		cnt += v[i].F;
		ans = max(ans,  cnt + x*x);
	}
	cout << ans << endl;
}
