sub f{
    my $d=@_[0];
    return $F{$d} if $F{$d}!=undef;
    return 0 if $d<0;
    my $result = &f($d-1) + &f($d-2);
    $F{$d}=$result;
    return $result;
}
($N,$M)=glob<>;$mod=1e9+7;
@A=(-1);
for(1..$M){
    $a=<>;
    push(@A,$a);
}
push (@A,$N+1);
$D[$_]=$A[$_+1]-$A[$_]-1 for(0..$M);
$F{0}=0;$F{1}=1;$F{2}=1;
$o=1;
$o=($o*&f($_))%$mod for(@D);
print $o