output_description: Print the maximum satisfaction that you can obtain.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N K
      t_1 d_1
      t_2 d_2
      .
      .
      .
      t_N d_N
attempt: import numpy as np
  
  n, k = map(int, input().split())
  mx = {}
  for _ in range(n):
      t, d  = map(int, input().split())
      if t not in mx:
          mx[t] = d
      elif mx[t] < d:
          mx[t] = d
      sushi.append((t,d))
  
  # 美味しさでソート
  taste_sorted_sushi = sorted(sushi, key=lambda x:x[1], reverse=True)
  
  # 貪欲にK個選び分割する
  selected_sushi = taste_sorted_sushi[:k]
  
  # 貪欲なK個の種類の分布を調べる
  # K個の中で二つ以上あるものとそうでないものに分ける
  S = set()
  q = []
  for s in selected_sushi:
      if s[0] in S:
          q.append(s)
      else:
          S.add(s[0])
  
  q = sorted(q, key=lambda x:x[1], reverse=True)
  ans = sum(selected_sushi[:][1])+len(S)**2
  
  S = set(selected_sushi[:][0])
  for i in range(k,n):
      if taste_sorted_sushi[k] not in S:
          ans = max(ans, ans-q.pop()+taste_sorted_sushi[k]-len(S)**2 + (len(S)+1)**2
          S.add(taste_sorted_sushi[k][0])
  
  print(ans)
problem_description: Statement
  
  There are N pieces of sushi. Each piece has two parameters: "kind of topping"
  t_i and "deliciousness" d_i. You are choosing K among these N pieces to eat.
  Your "satisfaction" here will be calculated as follows:
  
    * The satisfaction is the sum of the "base total deliciousness" and the "variety bonus".
    * The base total deliciousness is the sum of the deliciousness of the pieces you eat.
    * The variety bonus is x*x, where x is the number of different kinds of toppings of the pieces you eat.
  
  You want to have as much satisfaction as possible. Find this maximum
  satisfaction.
samples: [{"input": "5 3\n    1 9\n    1 7\n    2 6\n    2 5\n    3 1", "output": "26\n    \n\nIf you eat Sushi 1,2 and 3:\n\n  * The base total deliciousness is 9+7+6=22.\n  * The variety bonus is 2*2=4.\n\nThus, your satisfaction will be 26, which is optimal.\n\n* * *"}, {"input": "7 4\n    1 1\n    2 1\n    3 1\n    4 6\n    4 5\n    4 5\n    4 5", "output": "25\n    \n\nIt is optimal to eat Sushi 1,2,3 and 4.\n\n* * *"}, {"input": "6 5\n    5 1000000000\n    2 990000000\n    3 980000000\n    6 970000000\n    6 960000000\n    4 950000000", "output": "4900000016\n    \n\nNote that the output may not fit into a 32-bit integer type."}]