One day *n* friends met at a party, they hadn't seen each other for a long time and so they decided to make a group photo together. 

Simply speaking, the process of taking photos can be described as follows. On the photo, each photographed friend occupies a rectangle of pixels: the *i*-th of them occupies the rectangle of width *w*<sub class="lower-index">*i*</sub> pixels and height *h*<sub class="lower-index">*i*</sub> pixels. On the group photo everybody stands in a line, thus the minimum pixel size of the photo including all the photographed friends, is *W* × *H*, where *W* is the total sum of all widths and *H* is the maximum height of all the photographed friends.

As is usually the case, the friends made *n* photos — the *j*-th (1 ≤ *j* ≤ *n*) photo had everybody except for the *j*-th friend as he was the photographer.

Print the minimum size of each made photo in pixels.
The first line contains integer *n* (2 ≤ *n* ≤ 200 000) — the number of friends. 

Then *n* lines follow: the *i*-th line contains information about the *i*-th friend. The line contains a pair of integers *w*<sub class="lower-index">*i*</sub>, *h*<sub class="lower-index">*i*</sub> (1 ≤ *w*<sub class="lower-index">*i*</sub> ≤ 10, 1 ≤ *h*<sub class="lower-index">*i*</sub> ≤ 1000) — the width and height in pixels of the corresponding rectangle.
z,zz=input,lambda:list(map(int,z().split()))
fast=lambda:stdin.readline().strip()
zzz=lambda:[int(i) for i in fast().split()]
szz,graph,mod,szzz=lambda:sorted(zz()),{},10**9+7,lambda:sorted(zzz())
from string import *
from re import *
from collections import *
from queue import *
from sys import *
from collections import *
from math import *
from heapq import *
from itertools import *
from bisect import *
from collections import Counter as cc
from math import factorial as f
from bisect import bisect as bs
from bisect import bisect_left as bsl
from itertools import accumulate as ac
def lcd(xnum1,xnum2):return (xnum1*xnum2//gcd(xnum1,xnum2))
def prime(x):
    p=ceil(x**.5)+1
    for i in range(2,p):
        if (x%i==0 and x!=2) or x==0:return 0
    return 1
def dfs(u,visit,graph):
    visit[u]=1
    for i in graph[u]:
        if not visit[i]:
            dfs(i,visit,graph)
def output(answer):
    stdout.write(str(answer))
###########################---Test-Case---#################################
"""

  If you Know me , Then you probably don't know me !


"""
###########################---START-CODING---##############################

num=int(z())

lst_x=[0]*num
lst_y=[0]*num

s=0
for i in range(num):
    x,y=zzz()
    s+=x
    lst_x[i]=(x)
    lst_y[i]=(y)
lst=lst_y    
lst_y=sorted(lst_y)

ans=[]

for i,j in zip(lst_x,lst):
    w=s-i
    h=lst_y[-1]
    if h==j:h=lst_y[-2]
    print(w*h,)

    

    
            





























        
        
       
