#include<bits/stdc++.h>
using namespace std;
const int Mod=1000000007;
int a[200005];
int main()
{
    int n,k;
    scanf("%d%d",&n,&k);
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    int res=1;
    if(k==n || a[n]<0)
    {
        if(k&1)for(int i=n-k+1;i<=n;i++)
            res=1LL*res*a[i]%Mod;
        else for(int i=1;i<=k;i++)
            res=1LL*res*a[i]%Mod;
    }
    else
    {
        int l=1,r=n;
        if(k&1)res=1LL*res*a[r]%Mod,r--,k--;
        while(k)
        {
            if(1LL*a[l]*a[l+1]>1LL*a[r]*a[r-1])
                res=1LL*res*a[l]%Mod*a[l+1]%Mod,l+=2;
            else res=1LL*res*a[r]%Mod*a[r-1]%Mod,r-=2;
            k-=2;
        }
    }
    res=(res+Mod)%Mod;
    return 0*printf("%d\n",res);
}
