program x_z;
//uses
// crt;
type
ukazat = ^S;
S = record
Inf: integer;
step: integer;
Next: ukazat;
End;
var
u, x,dx,first: ukazat;
i, l, a: integer;
f: boolean;
procedure nov(i: integer);
begin
New(x);
Readln(x^.Inf);
x^.step := i;
x^.Next := u;
u := x;
first:=u;
end;
procedure av;
begin
x:= u;
while ( x<> nil) and ( x^. step<> a) do
begin
dx:= x;
x:= x^.next;
end;
dx:= x^.next;
dispose(x);
end;
procedure vivod;
begin
var i:integer;
x:=first;
// readln();
// x:=u;
// f := true;
// while f do
// begin
// if x = nil then f := false else begin
Writeln(x^.inf, ' ', x^.step);
x := x^.next;
// end;
// for i:=1 to 100000000000000 do begin end;
end;
//end;
begin
//clrscr;
{ New(x);
x^.Next := nil;
x^.Inf := 0;
x^.step := 0;}
first:=nil;
write('введите максимальноую степень и а ');
readln(l, a);
for i := 0 to l do nov(i);
writeln();
av;
x:=first;
for i := 0 to l do vivod;
end.