program juosta;

type
 Tjuosta =
   record
     n : integer;
     data: array[1..100] of integer;
   end;
var
  f : text;
  jst : tjuosta;
  i, st, en, j, old, tmp : integer;
  mvs : integer;
  been : array[1..100, -100..100] of boolean;

function newPos(st, old : integer): integer;
var
  prk : integer;
begin
  prk := jst.data[st] * old;
  while prk < 0 do inc(prk, jst.n);
  st := (st + prk) mod jst.n;
  if st = 0 then st := jst.n;
  newPos := st;
end;

begin
  assign(f, 'JUOSTA.IN');
  reset(f);
  readln(f, jst.n);
  for i := 1 to jst.n do
  begin
    read(f, jst.data[i]);
    for j := -100 to 100 do been[i, j] := false;
  end;
  readln(f);
  readln(f, st, en);
  close(f);  
  mvs := 0;
  old := 1;
  while (not been[st, old]) and (st <> en) do
  begin    
    been[st][old] := true;
    write(st, '  ',old);
    tmp := st;
    st := newPos(st, old);
    writeln('   ',st);
    old := jst.data[tmp];
    inc(mvs);
  end;

  assign(f, 'JUOSTA.OUT');
  rewrite(f);

  if st <> en then write(f, 0)
              else write(f, mvs);
  close(f);

end.
