var
inFile, outFile: text;
n, k: integer;
stroka0: string;
stroka1: string;
stroka2: string;
i,j: integer;
a: array[1..10001] of integer;
b: array[1..10001] of integer;
tmp : string;
priznak : integer;
key : integer;
begin
assign(infile, 'input4.txt'); // связываем файл input4.txt с переменной типа ТЕКСТОВЫЙ ФАЙЛ
assign(outFile, 'output4.txt');
reset(infile); // устанавливаем указатель чтения на начало файла
rewrite(outFile); // устанавливаем указатель записи на начало файла
readln(infile, stroka0);// читаем кол-во цифр из файла (n)
readln(infile, stroka1); // читаем строку последовательности A
readln(infile, stroka2); // читаем строку последовательности B
n:=StrToInt(stroka0);
// формирование массива A
i:=1;
j:=1; // позиция в разбираемой строке
while (i <= n) do // цикл по числу чисел в строке
begin
tmp := ''; // строка с числом пока пуста
k := 0;
while (stroka1[j] <> ' ') do
begin
k:=k+1;
tmp:=tmp+stroka1[j];
if (j < length(stroka1))
then j:=j+1
else break;
end;
j:=j+1;
a[i] := StrtoInt(tmp);
i := i+1;
end;
// формирование массива B
i:=1;
j:=1; // позиция в разбираемой строке
while (i <= n) do // цикл по числу чисел в строке
begin
tmp := ''; // строка с числом пока пуста
k := 0;
while (stroka2[j] <> ' ') do
begin
k:=k+1;
tmp:=tmp+stroka2[j];
if (j < length(stroka2))
then j:=j+1
else break;
end;
j:=j+1;
b[i] := StrtoInt(tmp);
i := i+1;
end;
for disp:integer:=-104 to 104 do
begin
priznak := 1;
for t:integer:=1 to n do
if (b[t] <> (a[t] + disp))
then priznak := 0;
if (priznak = 1)
then begin
key := disp;
break;
end;
end;
if (priznak = 1)
then begin
write(outFile,'YES');
if (key > 0)
then write(outFile,'+')
else write(outFile,'-');
write(outFile,key);
writeln(key);
end
else begin
write(outFile,'NO');
write('NO');
end;
end.