n,m=map(int,input().split())
a=[int(input()) for i in range(m)]

def sum(x):
    if x==1:
        return x
    if x==2:
        return x
    return sum(x-1)+sum(x-2)
  
b=sum(n) #壊れた階段がない場合の移動方法が何通りあるか


c=0 #壊れた段が含めていた組合せ

for i in a:
  c+=sum(n-i)*(i-1)

d=0 #壊れた段を2段飛ばしで跨いだ組合せ

for i in a:
  d+=sum(n-i-1)*(i-1)

if (b-c-d)>0:
  print((b-c-d)%1000000007)
else:
  print('0')