const fi='DOANQC.INP';
fo='DOANQC.OUT';
var f1,f2:text;
i,j,n:word;
a,b,nho:array[1..3000] of longint;
tam,min:longint;
dem:word;
begin
randomize;
assign(f1,fi);reset(f1);
assign(f2,fo);rewrite(f2);
repeat
readln(f1,n);
until (1<=n) and (n<=3000);
dem:=1;
for i:=1 to n do readln(f1,a[i],b[i]);
min:=a[1];
for i:=2 to n do if a[i]<min then min:=a[i];
for i:=1 to n-1 do
for j:=i+1 to n do
if b[i]>b[j] then
begin
tam:=b[i];
b[i]:=b[j];
b[j]:=tam;
end;
for i:=1 to n do
if b[i]<>b[i+1] then
begin
inc(dem);
nho[dem]:=b[i];
end;
writeln(f2,dem);
write(f2,random(nho[2]-min)+min,' ');
for i:=2 to dem do write(f2,nho[i],' ');
close(f1);close(f2);
end.