output_description: Print the maximum total comfort the N players can get.
  
  * * *
input_description: Input is given from Standard Input in the following format:
  
      
      
      N
      A_1 A_2 \dots A_N
attempt: # 以下は上位者のコピー
  n, k = map(int, input().split())
  mod = 10**9 + 7
  
  from collections import deque
  
  a = list(map(int, input().split()))
  a.sort()
  minus, zero, plus = 0, 0, 0
  for i in range(n):
      if a[i] < 0:
          minus += 1
      elif a[i] == 0:
          zero += 1
      else:
          plus += 1
  
  que = deque(a)
  
  plus_flg = False
  tmp = plus - k
  if tmp >= 0:
      plus_flg = True
  elif tmp * -2 > minus:
      plus_flg = True
  
  # plus可能
  if plus_flg:
      ans = 1
      cnt = 0
  
      while cnt < k:
          if k - cnt >= 2:
              cnt += 2
              if que[0] * que[1] >= que[-1] * que[-2]:
                  ans *= que.popleft()
                  ans *= que.popleft()
                  ans %= mod
              else:
                  ans *= que.pop()
                  ans *= que.pop()
                  ans %= mod
          else:
              ans *= que.pop()
              ans %= mod
              cnt += 1
  
      print(ans)
  
  
  # zero
  elif zero > 0:
      print(0)
  
  # minus
  else:
      a = [abs(a[i]) for i in range(n)]
      a.sort()
      ans = 1
      for i in range(k):
          ans *= a[i]
          ans %= mod
      ans = -ans % mod
      print(ans)
  
problem_description: Statement
  
  Quickly after finishing the tutorial of the online game _ATChat_ , you have
  decided to visit a particular place with N-1 players who happen to be there.
  These N players, including you, are numbered 1 through N, and the
  **friendliness** of Player i is A_i.
  
  The N players will arrive at the place one by one in some order. To make sure
  nobody gets lost, you have set the following rule: players who have already
  arrived there should form a circle, and a player who has just arrived there
  should cut into the circle somewhere.
  
  When each player, except the first one to arrive, arrives at the place, the
  player gets **comfort** equal to the smaller of the friendliness of the
  clockwise adjacent player and that of the counter-clockwise adjacent player.
  The first player to arrive there gets the comfort of 0.
  
  What is the maximum total comfort the N players can get by optimally choosing
  the order of arrivals and the positions in the circle to cut into?
samples: [{"input": "4\n    2 2 1 3", "output": "7\n    \n\nBy arriving at the place in the order Player 4, 2, 1, 3, and cutting into the\ncircle as shown in the figure, they can get the total comfort of 7.\n\n![Figure](https://img.atcoder.jp/ghi/766a260a0019ea93e86e0588cc4db868.png)\n\nThey cannot get the total comfort greater than 7, so the answer is 7.\n\n* * *"}, {"input": "7\n    1 1 1 1 1 1 1", "output": "6"}]