#include<iostream>
#include<stdlib.h>
using namespace std;
typedef struct
{
    int n,a;
}ball;
int compare(const void *a, const void *b)
{
    if(((ball *)a)->a > ((ball *)b)->a)
        return -1;
    return 1;
}
int main()
{
    int n,m,i;
    unsigned long long int sn=0,sa=0;
    do{cin>>n;}while(!(n%2==0 && n>=1 && n<=100000));
    do{cin>>m;}while(!(m>=0 && m<=100000));
    ball v[100001];
    for(i=1;i<=n;i++)
    {
        do{cin>>v[i].n;}while(!(v[i].n>=0 && v[i].n<=m));
        do{cin>>v[i].a;}while(!(v[i].a>=0 && v[i].a+v[i].n===m));
    }
    qsort(v+1,n,sizeof(ball),compare);
    for(i=1;i<=n/2;i++)
        sa+=v[i].a;
          for(i=n/2+1;i<=n;i++)
        sn+=v[i].n;
        cout<<sa<<" "<<sn;
return 0;
}