#include <bits/stdc++.h>
using namespace std;
const int N = 500;
int a[N], b[N];
int dp[N][N];
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) {
    scanf("%d", &a[i]);
    a[i + 2 * n] = a[i + n] = a[i];
  }
  for (int i = 1; i <= n; i++) {
    scanf("%d", &b[i]);
    b[i + 2 * n] = b[i + n] = b[i];
  }
  dp[0][0] = 0;
  dp[1][1] = a[1];
  for (int i = 2; i <= 2 * n; i++) {
    if (i % 2 == 0) dp[i][i / 2] = dp[i - 1][i / 2] + b[i];
    for (int j = i / 2 + 1; j <= i; j++) {
      if (i != j)
        dp[i][j] = min(dp[i - 1][j] + b[i], dp[i - 1][j - 1] + a[i]);
      else
        dp[i][j] = dp[i - 1][j - 1] + a[i];
    }
  }
  int ans = dp[2 * n][n];
  int tmp = ans;
  for (int k = 1; k < n; k++) {
    dp[0][0] = 0;
    dp[1][1] = a[k + 1];
    for (int i = 2; i <= 2 * n; i++) {
      if (i % 2 == 0) dp[i][i / 2] = dp[i - 1][i / 2] + b[i + k];
      for (int j = i / 2 + 1; j <= i; j++) {
        if (i != j)
          dp[i][j] = min(dp[i - 1][j] + b[i + k], dp[i - 1][j - 1] + a[i + k]);
        else
          dp[i][j] = dp[i - 1][j - 1] + a[i + k];
      }
    }
    tmp = min(tmp, dp[2 * n][n]);
  }
  printf("%d\n", ans + tmp * (m / 2 - 1));
  return 0;
}
