/*
    ──────────────────────────────░░░────────
    ───────────────────────────░▓█████▒──────
    ──────────────────────────░████████▒─────
    ─────────────────────────░██████████░────
    ─────────────────────────███████████▓────
    ────────────────────────░████████████────
    ────────────────────────█████████████▒───
    ───────────────────────░█████████████▓───
    ───────────────────────▓██████████████───
    ───────────────────────███████████████───
    ───────────────────────█████▓█████████░──
    ──────────────────────░████▓▓█████████░──
    ───────────────────────███▓▓▓▓▓███▓▓██▒──
    ───────────────────────████▓▓▓▓▓▓▓▓▓██▒──
    ───────────────────────████▓▓▓▓▓▓▓▓▓██▒──
    ───────────────────────████▓▓▓▓▓▓▓▓▓██▒──
    ──────────░░░───░░░▒▓▓▓███▓▓▓▓▓▓▓█████░──
    ─────────░████████████████▓▓██████████░──
    ──────────████████████████▓▓██▓▓▓█████░──
    ──────────██▓▓████████████▓████▓▓█████░──
    ────────▓▓█▓▓▓▓▓██████████▓███████████░──
    ────────██▓▓▓▓█▓█████▓▓▓██▓████▓▓█████░──
    ────────░█▓▓█▓█████────░██▓████▓▓█████░──
    ────────▓█▓▓▓▓▓▒█▒▓─────██▓█▓██▓▓█████░──
    ───────░██▓▓▓▓█░█▒░░────███▓▓▓▓▓▓█████░──
    ───────██▓▓▓███▓▓█▓░────▓██▓▓▓█▓▓▓███▓───
    ──────███▓▓▓▓▓████░─────▒██▓▓▓█▓▓▓███▒───
    ─────▓███▓▓▓▓▓██────────░███▓▓███████▒───
    ────░██▓▓▓██▓▓██─────────░███████████▒───
    ───░██▓▓▓███▓▓██─────────░███████████▒───
    ───████▓████▓██▓──────────███████████░───
    ──█████▓██▓▓▓██▓──────────███████▓███────
    ─███▓██████████▓──────────▓███▓▓████▓────
    ─██▓▓████▓█████▓──────────▒█████████░────
    ░██▓▓███──██████──────────▓█████████─────
    ▒██▓▓▓██──░███▒░─────────░██████████─────
    ▓██▓▓██▓─────────────────███████████─────
    ███████▒────────────────▓█▓▓████████▒────
    ███████░─────────░░░──░▓██▓▓▓██████▓█────
    ███████─────▓█████████████▓▓▓█████▓▓█▓───
    ██████▓────░██████████████▓▓▓▓████▓▓██▒──
    ██████▒────▒███████████████▓▓▓▓██▓▓▓████░
    ██████░────▓███████████████▓▓▓▓██▓▓▓█████
    ██████─────████████████████▓▓▓████▓▓▓████
    ██████────░███████████████▓▓▓▓████▓▓▓████
    █████▓───░████████████████▓▓▓██████▓▓████
    █████▒───█████████████████▓▓▓██████▓▓████
    █████──▒██████████████████▓▓█▓▓██▓██▓████
    ████▓─░███████████████████▓▓▓▓▓██▓▓██████
    ████▒─████████████████████▓▓▓▓▓██▓▓▓█████
    ████▓▓████████████████████▓▓▓▓▓██▓▓▓█████
    ██████████████████████████▓▓▓▓▓██▓▓▓█████
    ██████████████████████████▓▓▓▓▓██▓▓▓█████
    ██████████████████████████▓▓▓▓███▓▓▓█████
    ██████████████████████████▓▓▓▓███▓▓▓█████
    ██████████████████████████▓▓▓▓████▓▓█████
    ██████████████████████████▓▓▓▓████▓▓█████
    ██████████████████████████▓▓▓▓████▓▓█████
    ██████████████████████████▓▓▓▓████▓▓█████
    ██████████████████████████▓▓▓▓████▓▓█████
*/
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define mp make_pair
#define pb push_back
#define se second
#define fi first 
#define rep(n) for(ll i=0;i<n;i++)
ll a[200007], b[200007], c[200007], d[200007], e[200007];
ll kar=1000000007;

ll ma(ll A[], ll n, ll k) 
{  
    sort(A, A + n); 
 
    ll product = 1; 
 
    if (A[n - 1] == 0 && (k & 1)) 
        return 0; 
 
    if (A[n - 1] <= 0 && (k & 1)) { 
        for (ll i = n - 1; i >= n - k; i--) 
            product = (A[i]%kar*product%kar)%kar; 
        return product; 
    } 
 
    ll i = 0; 

    ll j = n - 1; 

    if (k & 1) { 
        product *= A[j]; 
        j--; 
        k--; 
    } 

    k >>= 1; 

    for (ll itr = 0; itr < k; itr++) { 

        ll left_product = A[i] * A[i + 1];  
        ll right_product = A[j] * A[j - 1];  
        if (left_product > right_product) { 
            product = (left_product%kar*product%kar)%kar; 
            i += 2; 
        } 
        else { 
            product = (right_product%kar*product%kar)%kar; 
            j -= 2; 
        } 
    }  
    return product%kar; 
}

int main() {
#ifndef ONLINE_JUDGE
    freopen("input1.txt", "r", stdin);
    freopen("output1.txt", "w", stdout);
#endif
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    ll i, k, l, t, n, r, y, j, pos, one=0, even=0, odd=0, x;
    
    cin>>n>>k;
    for(i=0;i<n;i++) cin>>a[i];
    
    //cout<<kar<<"\n";
    if(ma(a, n, k)<0) cout<<kar+ma(a, n, k);
    else cout << ma(a, n, k)%kar; 
    
}
//  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMHBYYYWMMMM#BYYTTTYWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMB9O1==?????zzCC111>>;;;;;;;;;;;<?TMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM9Olll=l======??????????>>>>>>;;;;;;;;;:;?TMMMMMMMMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMMMMMMMM9ttlllllllll=l=======?????????>>>>>>;;;;;;;;;;?TMMMMMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMMMMMBOttOtttttltlllllllll=======??????????>>>>>>>;;;;;;?TMMMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMMMBttwOtttttttttttttlllllllll========?????????>>>>>>;;;;;<TMMMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMMBrwZrttttttttttttttttttlllllllllll======???????????>>>>>>;;?HMMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMMSw0trtrrtrtrttrtttttttttttttlllOllllll========????<<zz??>>>>>>ZMMMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMMMX0ttrtrOOttrttrttOOttttttttttttltwllllllllll========??wy?????>>>vZMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMM0ttrI+wV1rtttttttwZtttttttltttOwylOXOllllllllllll=l====1dkz???????vZdMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMSrrwrtwZCjttttttttwSttOlllltllllwtXOlZkOlllllllllllllll==z+dk===?????X2JMMMMMMMMMMMMM
//  MMMMMMMMMMMMMBrtwwtrw0<jttttttttOXllOttltllttllOZwHOtXkyltlllllllllllllll<+XZ======?dk?JMMMMMMMMMMMM
//  MMMMMMMMMMMMStwdZtwXC<+ttttttOOOd6ltZlltllllttllStWWOOHWytttttltltOllltllz:zHllll===zX=?dMMMMMMMMMMM
//  MMMMMMMMMMBrwdKOtwW3;;zrttttwZwXRlldOllltltlltttwlXvktdXWytltttttttOttlttl<<dklllllllZ===dMMMMMMMMMM
//  MMMMMMMMM8tQM#ttwW3;;;1trttwSwfUOlORltllltlllllldtX>dktDOWOtlttltttOOttltO<;+WOllllllXlllzMMMMMMMMMM
//  MMMMMMMM9OdM#Ottd$;;;;;<?1z0OKjRltd0llltOllllllldZX>?WOw_WWOtttttttttOttI<;;<dkttttllllllldMMMMMMMMM
//  MMMMMMM9wMMMSttwS<;;;;>;;;J<j>(I<?U111zltllllllld0X>~dkwl(WkttlttlOOwWk<;;:;;zHttttttwOllllMMMMMMMMM
//  MMMMMMBdMMM8tttdI+zttttttdSXt~dlzXwlllzzOzzzzzlldkW<~?kOk~?sx++++jdHmH6+++<;;jdZtttttdkOtlldMMMMMMMM
//  MMMMM#dMMM#tttw0+tttttttdKdf((RsdfRllllldZllltlldWK~~_W0w_~OWOlOdgg9ZtOWOtttz+wktttttdpktttwMMMMMMMM
//  MMMMMWMMMMSlttdIttttttOdWHH>~(IzWDRll=llzRlllzlldk$>++dkd<~_XkdgH9tttttdktttt+OkrttrtdfpkttOMMMMMMMM
//  MMMMNWMMM#Zttlk=tttttOXWWd$_.(IdW1R=llll=SlllzOldK<_._(kd6+-(MM9lltttttrWktttztWZttrwXppWttrMMMMMMMM
//  MMMMNMMMM#lltwDzttllOXyW0X:..(OXk<Rl=ll=lwOlllOld3<``.(Rd>~?CdklllltttttXdXttzOWktrwwWpfpkrtMMMMMMMM
//  MMMMMMMMM@ltldIzlttOXyW$w$```(OyD(Rl==llldZ=llIlw;~```-Xd:~~~~UkylltttAyHdgSrzObRtOXwpfppWrrMMMMMMMM
//  MMMMMMMMM@llldtlllldVyW+d>```.wZ$ wl==lI=wRl=ll=w<```` dd_..~~(RZXOQdggHH9ZwrzwHWrdXXppfppkrMMMMMMMM
//  MMMMMMMMM#llldlltlwyyyD(S-...,Wk] zI=l=llzWzl=l=P~```` jZ``...~zQkH@MBUtrZtrtldHRdSdpfpffpkwMMMMMMMM
//  MMMMNMMMMNZllXtllldVyW3(Mf=<ONMHP~(k===l=zdk=lld3```...(C````..(M96lttttrrtrrtdHWHXpfpppfpRwMMMMMMMM
//  MMMMMMMMMMNzzWZllzyyyy(W@`  =~MWK6 jz=lzlzvRz=lZ`.I+JgkWm&-. `..(ZltlttttrtttrWWHppfppfpppSdMMMMMMMM
//  MMMMMMMMMMMkAWRllzVyyS_(b    .MNHU-(Uz=lI={XkzO>.dVT7<TMHMNHHx-.(kwZyltttrtrrdHHpfppfpffpp0dMMMMMMMM
//  MMMMMMMMMMMMKyWzOzyyyk.`<!  hdWMH]``(S==t=l(kX2 ?_`    WMMHH#HH+.XwkwOttttrwrZ~(HfpfpppfpWwXMMMMMMMM
//  MMMMMMMMMMMMMHWROOyyyW;` `. (WVM#b```(0=zzz wX!```  a.dM#NM@N(4WhXkXkWtttttwd3O_(HpffpfpfWwSMMMMMMMM
//  MMMMMMMMMMMMNZvWzXXyyXP```-_ ?o+?!````.4=Z=`(:````  HpbNNMHHH (C=XXyWZWttrdwf:(>.dfppffppSXSMMMMMMMM
//  MMMMMMMMMMMMMRzuHzXyZXH.``````````````` ?zz ``````` ZKvTHHbWt `` XZyyHZWOdSZ<::~`(fpfpfffXp0WMMMMMMM
//  MMMMMMMMMMMMMKzyyHvyZZW____.`````````````.I_```````` ?nJzX7^````.WXWyyHyWKZ<:::_`Jffpfpfpfp0WMMMMMMM
//  MMMMMMMMMMMMM@zZyZWwWyXo-_~(~ ```````````` `````````````` _`````.WXkyyVWmWc::<~ .HffppfffffkXMMMMMMM
//  MMMMMMMMMMMMMKzZZZZXkUXr~....```````....```````````` ...  ````..JXWWyyW83vXx~..WfffVfWVffffkdMMMMMMM
//  MMMMMMMMMMMMMRzZZZZZZZZb````````````<````````````./<~._<_.____`(WfdyW3<:~~(XWkVVVVVVVHVVVVV0dMMMMMMM
//  MMMMMMMMMMMMMSzZZZZZZZWX-```````````````````````````.......~~._j9jX=_~~_(XZyVHHkyyyyWHyyykykOMMMMMMM
//  MMMMMMMMMMMMMSzuuuuuZXWZW,```````````````````````````````.``..(3<! ...JWyyXWyyyWHkyyWHyyyHyklMMMMMMM
//  MMMMMMMMMMMMNXzuuuXXuXSuuXh,```````` .... ```````````````````_~ .JWyyyyZyy0HyyZyyZyZXWZZZWHZIdMMMMMM
//  MMMMMMMMMMMMNwtuuuXkuXXuuuuXh,``````(:::~<?71(,``````````````.(UMNUkZZZZZZZHZZ0ZZZZZWWZZZWNXIdMMMMMM
//  MMMMMMMMMMMMNKOzuzXkuXuuuuuXuXW, ```` _~~~:~~(}```````````.(YC;::<kCfZZZZXO#ZZVZZZZZMZZuuMMNXzMMMMMM
//  MMMMMMMMMMMMHKOzzuXkzdzzzzuXXzuuU&.``````````````````` .JY>::::;;J=:dZuZuZd#uuruuuud#uuuXMMMNXdMMMMM
//  MMMMMMMMMMMMMNOvzzXkvMRzzzzXKzuzzzXh, `````````````..JC<;:;;:;;+7<:~(HHuXIdNuuzuuuXMSuuuWMMMMROMMMMM
//  MMMMMMMMMMMMMNvvvrdkvM#vzzzzHzzzzzuzzUG. ``` ...JdY<:;:;:::;;+v<~~~:(HpHmzMNXZzuzzd#zzzdMMMMMMRdMMMM
//  MMMMMMMMMMMMMNwrrvdRrMNwvvvvdRvvvzwkzzzzXWWHY=~~O+::::::::<+<~~~~~~~dppppWMMkZzzzwM#zzdMMMMMMMMNMMMM
//  MMMMMMMMMMMMMM#rrrwRrMMbOrrOZNkrvvvXwvvvvvwX;.~._W_:::::(?!~~~~~~~~(HpppppppHWdvwM#XwdMMMMMMMMMMNMMM
//  MMMMMMMMMMMMMMNyrrrRrWMMmzOrzdNyrrrZNvrwQWWfb....(r~~_J>_.....~.~~-dpfpffpfpppWHHMNdMMMMMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMNrtrStdMMMNxzrzMNmrrrdNWfVfffP._-.(~_J!............JpfpffpfpfffpppWNppppHMMMMMMMMMMMM
//  MMMMMMMMMMMMMMMMNOtXtdMMMMMNxzZMMNmgHyVVVVVW%..?/(.,(x-..........(HfffpffpffpffWHHffpffppfVyyWMMMMMM

Measured memory_bytes: 5140