var  
i,n,l:longint;  
a,b,c:array[0..10000] of longint; 
g,g2:array[0..100000] of longint; 
procedure gj1; 
var  
j:longint; 
begin   
for j:=1 to l do g[j]:=g[j]*b[i];  
for j:=1 to l do  
begin  
g[j+1]:=g[j+1]+g[j] div 10; 
g[j]:=g[j] mod 10;  
end;  
inc(l);   
while g[l]>9 do  
begin  
g[l+1]:=g[l+1]+g[l] div 10; 
g[l]:=g[l] mod 10;  
inc(l);  
end;  
if g[l]=0 then dec(l); 
end;  
procedure gj2; 
var  
j:longint; 
begin  
for j:=l downto 1 do 
begin  
g[j-1]:=g[j-1]+(g[j] mod c[n])*10;   
g[j]:=g[j] div c[n];  
end;   
while (g[l]=0)and(l<>1) do dec(l); 
if (g[l]=0)and(l=1) then g[l]:=1; 
end;  
procedure sort(l,r:longint); 
var  
i,j,x,y:longint; 
begin  
i:=l;  
j:=r;  
x:=a[(l+r) div 2]; 
repeat  
while a[i]<x do inc(i); 
while x<a[j] do dec(j); 
if not (i>j) then 
begin 
y:=a[i]; 
a[i]:=a[j]; 
a[j]:=y; 
y:=b[i];  
b[i]:=b[j];  
b[j]:=y;  
y:=c[i];  
c[i]:=c[j]; 
c[j]:=y;  
inc(i); 
dec(j);  
end;  
until (i>j);  
if l<j then sort(l,j); 
if i<r then sort(i,r); 
end; 
begin   
  readln(n);   
  readln(b[0],c[0]);  
  for i:=1 to n do  
  begin   
  read(b[i],c[i]);  
  a[i]:=b[i]*c[i]; 
end;  
sort(1,n);  
l:=1;   
g[1]:=b[0];   
for i:=1 to n-1 do gj1;  
gj2;   
for i:=l downto 1 do write(g[i]); 
writeln; 
end.  
/**************************************************************
	Problem: 2315
	User: admin
	Language: Pascal
	Result: Wrong Answer
****************************************************************/