M=10**9+7 c=[0]*5000 N=gets.to_i $<.map{|e|c[e.to_i]+=1} a=[1]+[0]*N p=[1]+[0]*N N.times{|i| p[i+1]=p[i]*(i+1)%M N.downto(1){|j|a[j]=(a[j]+a[j-1]*c[i])%M} } r=0 0.upto(N){|i|r=(r+(-1)**(i%2)*a[i]*p[N-i])%M} p r