from bisect import* def main(): n,a,b,*x=map(int,open(0).read().split()) e=[[]]+[[i+i,i-~i]for i in range(1,n)]+[[]for _ in range(n)] for i,y in enumerate(x,n): l,r=bisect(x,y-b-1)+n,bisect(x,y-a)+n while l>=1 r>>=1 l,r=bisect(x,y+a-1)+n,bisect(x,y+b)+n while l>=1 r>>=1 a=[0]*n*2 for s in range(n,n+n): if a[s]:continue c=a[s]=1 q=[s] p={s} for v in q: for w in e[v]: if a[w]:continue if w>=n:c+=1 a[w]=1 p|={w} q+=w, for v in p:a[v]=c print('\n'.join(map(str,a[n:]))) main()