output_description: Find the minimum time that Snuke needs to have slimes in all N colors.
  
  * * *
input_description: The input is given from Standard Input in the following format:
  
      
      
      N x
      a_1 a_2 ... a_N
attempt: class SegmentTree(object):
      def __init__(self, A, dot, unit):
          n = 1 << (len(A) - 1).bit_length()
          tree = [unit] * (2 * n)
          for i, v in enumerate(A):
              tree[i + n] = v
          for i in range(n - 1, 0, -1):
              tree[i] = dot(tree[i << 1], tree[i << 1 | 1])
          self._n = n
          self._tree = tree
          self._dot = dot
          self._unit = unit
  
      def __getitem__(self, i):
          return self._tree[i + self._n]
  
      def update(self, i, v):
          i += self._n
          self._tree[i] = v
          while i != 1:
              i >>= 1
              self._tree[i] = self._dot(self._tree[i << 1], self._tree[i << 1 | 1])
  
      def add(self, i, v):
          self.update(i, self[i] + v)
  
      def sum(self, l, r):  # これで[l,r)から取り出す。
          l += self._n
          r += self._n
          l_val = r_val = self._unit
          while l < r:
              if l & 1:
                  l_val = self._dot(l_val, self._tree[l])
                  l += 1
              if r & 1:
                  r -= 1
                  r_val = self._dot(self._tree[r], r_val)
              l >>= 1
              r >>= 1
          return self._dot(l_val, r_val)
  
  
  N, x = map(int, input().split())
  INF = float("inf")
  A = list(map(int, input().split()))
  A = A + A
  Tree = SegmentTree(A, min, INF)
  ans = INF
  for kaisu in range(N):
      temp = kaisu * x
      for i in range(N):
          right = 2 * N - i
          left = right - (kaisu + 1)
          temp += Tree.sum(left, right)
      ans = min(ans, temp)
  print(ans)
  
problem_description: Statement
  
  Snuke lives in another world, where slimes are real creatures and kept by some
  people. Slimes come in N colors. Those colors are conveniently numbered 1
  through N. Snuke currently has no slime. His objective is to have slimes of
  all the colors together.
  
  Snuke can perform the following two actions:
  
    * Select a color i (1≤i≤N), such that he does not currently have a slime in color i, and catch a slime in color i. This action takes him a_i seconds.
  
    * Cast a spell, which changes the color of all the slimes that he currently has. The color of a slime in color i (1≤i≤N-1) will become color i+1, and the color of a slime in color N will become color 1. This action takes him x seconds.
  
  Find the minimum time that Snuke needs to have slimes in all N colors.
samples: [{"input": "2 10\n    1 100", "output": "12\n    \n\nSnuke can act as follows:\n\n  * Catch a slime in color 1. This takes 1 second.\n  * Cast the spell. The color of the slime changes: 1 \u2192 2. This takes 10 seconds.\n  * Catch a slime in color 1. This takes 1 second.\n\n* * *"}, {"input": "3 10\n    100 1 100", "output": "23\n    \n\nSnuke can act as follows:\n\n  * Catch a slime in color 2. This takes 1 second.\n  * Cast the spell. The color of the slime changes: 2 \u2192 3. This takes 10 seconds.\n  * Catch a slime in color 2. This takes 1 second.\n  * Cast the soell. The color of each slime changes: 3 \u2192 1, 2 \u2192 3. This takes 10 seconds.\n  * Catch a slime in color 2. This takes 1 second.\n\n* * *"}, {"input": "4 10\n    1 2 3 4", "output": "10\n    \n\nSnuke can act as follows:\n\n  * Catch a slime in color 1. This takes 1 second.\n  * Catch a slime in color 2. This takes 2 seconds.\n  * Catch a slime in color 3. This takes 3 seconds.\n  * Catch a slime in color 4. This takes 4 seconds."}]