一个多学科的比赛要来了!这个比赛有m种学科供参加者选择。这就是为什么张博士(教练)需要在他的学生中组建一个比赛代表团。
教练有n名候选人。对于第i个学生,教练知道他擅长的科目s,以及他这个科目的技能等级(等级可能是负的)。
比赛的规则需要代表团在所有给定科目中任意选择(可以选一科,可以部分选,也可以全选),给定科目的种类用数字1,2,3……表示。唯一的限制是:参赛队伍中参加每一科目的学生人数应相同。
张博士决定每个候选人只参加他擅长的科目。现在张博士想知道他应该选谁才能让代表团的技能等级和最大化。如果所有可以组成的代表团的技能等级和都为负,则退出今年的比赛。
(当然,张博士没有多余的钱,所以每个被选中的候选人都必须参赛,即候选人的科目种类在给定的科目种类中)
第一行包含两个整数n候选人数量和m学科数量(0<n,m<100001)。
下面n行包含两个整数s候选人擅长的科目和r科目技能等级。
输出一个整数,组成的代表团中技能等级和的最大值,如果每一个可组成的代表团技能等级和都是负则退赛输出0;
样例2输入
5 3
2 6
3 6
2 5
3 5
1 11
样例2输出
23
样例3输入
5 2
1 -1
1 -5
2 -1
2 -1
1 -10
样例3输出
0
注释:
在样例1中,最佳的选择是第1,2,3,4位候选人,他们四位中两位擅长第2种学科,两位擅长第3种学科,选择的科目各有两个人,总技能等级和为6+6+5+5=22.
在样例2中,最佳的选择是第1,2,5位候选人,分别擅长第1,2,3种科目,选择的科目各有一个人,总技能等级和为6+6+11=23.
在样例3中,不可能去组成一个技能等级和为非负的参赛队伍,所以输出0;