import std.stdio;
import std.algorithm;
import std.string;
import std.range;
import std.array;
import std.conv;
import std.complex;
import std.math;
import std.ascii;
import std.bigint;
import std.container;
import std.typecons;

auto readInts() {
	return array(map!(to!int)(readln().strip().split()));
}
auto readInt() {
	return readInts()[0];
}
auto readLongs() {
	return array(map!(to!long)(readln().strip().split()));
}
auto readLong() {
	return readLongs()[0];
}

const real eps = 1e-10;

void main(){
mainLoop:
	while(true) {
		auto nm = readInts();
		auto n = nm[0];
		auto m = nm[1];
		if(n == 0 && m == 0) {
			return;
		}
		int[] taro, hanako;
		for(int i; i < n; ++i) {
			taro ~= readInt();
		}
		for(int i; i < m; ++i) {
			hanako ~= readInt();
		}
		auto taroSum = reduce!("a+b")(0, taro);
		auto hanakoSum = reduce!("a+b")(0, hanako);
		if((taroSum + hanakoSum)%2 == 1) {
			writeln(-1);
			continue;
		}
		auto mid = (taroSum + hanakoSum)/2;
		sort(taro);
		sort(hanako);
		foreach(s; taro) {
			if(canFind(hanako, hanakoSum - mid + s)) {
				writeln(s, " ", hanakoSum-mid+s);
				continue mainLoop;
			}
		}
		writeln(-1);
	}
}