var x, y, nx, ny:integer;

procedure decxy;
begin
  writeln ('-B');
  writeln ('+A');
  dec (x); dec (y);
end;


procedure incxy;
begin
  writeln ('-A');
  writeln ('+B');
  inc (x); inc (y);
end;


procedure up;
begin
  incxy;
  writeln ('+B');
  writeln ('-A');
  dec (x); inc (y);
end;

procedure down;
begin
  decxy;
  writeln ('+A');
  writeln ('-B');
  inc (x); dec (y);
end;

begin
  reset (input, 'pluk.in'); rewrite (output, 'pluk.out');
  read (x, y, nx, ny);
  while x<nx do incxy;
  while x>nx do decxy;
  while (y>ny) and (abs (y-ny)>1) do down;
  while (y<ny) and (abs (y-ny)>1) do up;
//  writeln (x, ' ', y, ' ', nx, ' ', ny);
end.