#include <stdio.h>
#define MAX 101
int card[2][MAX],min[3];

void initialize(void)
{
    int i;
    for(i=0;i<MAX;i++)
    {
        card[0][i]=0;
        card[1][i]=0;
    }
    min[2]=2*(MAX-1);
    return;
}

int main(void)
{
    int n,m,N,M,num,d,jud;
    int i;

    while(1)
    {
        scanf("%d %d",&n,&m);
        if(n==0 && m==0)
        {
            break;
        }
        initialize();
        N=0; M=0;

        for(i=0;i<n;i++)
        {
            scanf("%d",&num);
            card[0][num]++;
            N+=num;
        }
        for(i=0;i<m;i++)
        {
            scanf("%d",&num);
            card[1][num]++;
            M+=num;
        }

        if((N-M)%2!=0)
        {
            printf("-1\n");
            continue;
        }
        else
        {
            d=(N>=M)?(N-M)/2:(M-N)/2;
        }

        jud=(N>=M)? 0:1;

        for(i=MAX-1;i>=0;i--)
        {
            if(i-d<0)
            {
                break;
            }
            if(card[jud][i]>0 && card[(jud+1)%2][i-d]>0)
            {
                if(min[2]>2*i-d)
                {
                    min[jud]=i;
                    min[(jud+1)%2]=i-d;
                }
            }
        }

        i? printf("%d %d\n",min[0],min[1]) : printf("-1\n");
    }
    return 0;
}