https://www.luogu.com.cn/problem/P1866
"""
P1866 编号
https://www.luogu.com.cn/problem/P1866
"""
s=1
n=int(input())
a=list(map( int,input().split() ))
a.sort()
for i in range(n):
s*=(a[i]-i)
s%=1000000007
print(s)
https://www.luogu.com.cn/problem/P1866
"""
P1866 编号
https://www.luogu.com.cn/problem/P1866
"""
s=1
n=int(input())
a=list(map( int,input().split() ))
a.sort()
for i in range(n):
s*=(a[i]-i)
s%=1000000007
print(s)