#include <bits/stdc++.h>
using namespace std;
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  int n, m;
  cin >> n >> m;
  vector<int> s[m + 1];
  map<int, int> mm;
  int sig = 0;
  for (int i = 0; i < n; i++) {
    int x, y;
    cin >> x >> y;
    s[x].push_back(y);
    if (y > 0) sig = 1;
    mm[x] = 1;
  }
  if (!sig) {
    cout << 0;
    return 0;
  }
  for (auto it = mm.begin(); it != mm.end(); it++) {
    sort(s[it->first].begin(), s[it->first].end(), std::greater<int>());
  }
  vector<int> v[m + 1];
  map<int, int> ans;
  for (auto it = mm.begin(); it != mm.end(); it++) {
    int c = 0;
    int i = 0;
    for (auto it2 = s[it->first].begin(); it2 != s[it->first].end(); it2++) {
      v[it->first].push_back(c + (*it2));
      c = c + (*it2);
      if (v[it->first][i] >= 0) {
        ans[i] = ans[i] + v[it->first][i];
      }
      i++;
    }
  }
  int aans = -1;
  for (auto it = ans.begin(); it != ans.end(); it++) {
    aans = max(aans, it->second);
  }
  cout << aans;
}
