var log = console.log;
if (typeof process != "undefined") {
	var input = "";
	process.stdin.resume();
	process.stdin.setEncoding('utf8');
	process.stdin.on('data', function (chunk) {
		input += chunk;
	});
	process.stdin.on('end', function () {
		var lines = input.split("\n");
		main(lines);
	});
}

//-----

function main(lines) {
	//??°????????????
	lines = lines.map(function (e) {
		if (e.split(" ").length >= 2) {
			return e.split(" ").map(function (f) {
				return Number(f);
			});
		} else {
			return Number(e);
		}
	});
	//????????????????????????
	while (lines.length > 0) {
		var top = lines.shift();
		var nums = top;
		var N = nums[0];
		var M = nums[1];
		//???????????£????????????????????¢
		if (N == 0 && M == 0) {
			return;
		} else {
			//N+M????????????
			var H = lines.splice(0, N);
			var W = lines.splice(0, M);
			dataset(H, W);
		}
	}
}

//???????????????????????????????????¢??°
function dataset(H, W) {
	//???????????????????????????????????¨????????????????????????????????´????????°??????????????°??????
	//??????????????¨?¨?????????????????????????????????????????????¨???????????????????????´????????°?????????????????????????????¨?????£?????????
	//???????¨??????????N^2??¬???????????§????°??????????
	var HE = listnum(H);
	var WE = listnum(W);
	var cross = crossobj(HE, WE);
	log(cross);
}

//???????????????????????????????????????????????????
function listnum(arr) {
	var len = arr.length;
	var result = {};
	for (var i = 0; i < len; i++) {
		var cur = 0;
		for (var j = i + 1; j <= len; j++) {
			cur += arr[j - 1];
			if (!result[cur]) {
				result[cur] = 1;
			} else {
				result[cur]++;
			}
		}
	}
	return result;
}

function crossobj(A, B) {
	var ret = 0;
	for (key in A) {
		if (!!B[key]) {
			ret += A[key] * B[key];
		}
	}
	return ret;
}