def Asian(S,Y,n,N,a,r,u,d,m,K):
p_perp = (1+r-d)/(u-d)
q_perp = (u-1-r)/(u-d)
for i in range(0,m+1):
a.append(0)
for i in range(m+1,N+1):
a.append(1)
if n==N:
return Asianforwardcall(S,Y,N,m,K)
else:
return (1/(1+r))*(p_perp*Asian(u*S,Y+a[n+1]*u*S,n+1,N,a,r,u,d,m,K)+q_perp*Asian(d*S,Y+a[n+1]*d*S,n+1,N,a,r,u,d,m,K))