#include <bits/stdc++.h>
using namespace std;

int n,m;

bool bound_check_ (vector< vector<int > >* ab,
            vector<vector<int> >* cd,
            int x,
            int y,
            vector<vector <int> >* arr)
{
    int sumv,sumh;

    for(int i=0;i<n;i++)
    {

    }
    for(int i=0;i<m;i++)
    {

    }
    if(ab[x][0]<arr[x][y] || ab[x][1]>arr[x][y]) return false;
    if(cd[y][0]<arr[x][y] || cd[y][1]>arr[x][y]) return false;
    return true;
}

main()
{

    cin>>n>>m;
    vector<vector<int> > ab;
    vector<vector<int> > cd;
    int tab,mab,tcd,mcd;

    tab=0;
    mab=0;
    tcd=0;
    mcd=0;

    for(int i=0;i<n;i++)
    {
        vector<int> tmp;
        int x,y;
        cin>>x>>y;

        tmp.push_back(x);
        tmp.push_back(y);

        tab+=x;
        mab+=y;
        ab.push_back(tmp);
    }

    for(int i=0;i<m;i++)
    {
        vector<int> tmp;
        int x,y;
        cin>>x>>y;

        tmp.push_back(x);
        tmp.push_back(y);


        tcd+=x;
        mcd+=y;
        cd.push_back(tmp);
    }

    //ukupno i broj polja

    int k=max(tab,tcd);
    int res=min(mab,mcd);

    cout<<res<<endl;
    cout<<k<<endl;




}