#include <bits/stdc++.h>
using namespace std;
std::vector<std::vector<long long> > A, B, C, res;
int L[20], R[20];
long long dp[22][22][22];
int N, M;
std::vector<std::vector<long long> > matrixmul(
    std::vector<std::vector<long long> > &A,
    std::vector<std::vector<long long> > &B,
    std::vector<std::vector<long long> > &C) {
  for (int i = 0; i <= N; i++) {
    for (int j = 0; j <= N; j++) {
      C[i][j] = (1LL << 45);
      for (int k = 0; k <= N; k++) C[i][j] = min(C[i][j], A[i][k] + B[k][j]);
    }
  }
  return C;
}
std::vector<std::vector<long long> > Pow(std::vector<std::vector<long long> > A,
                                         int M) {
  if (M == 1) return A;
  std::vector<std::vector<long long> > B = Pow(A, M / 2);
  B = matrixmul(B, B, res);
  if (M & 1) return matrixmul(A, B, res);
  return B;
}
long long calc(int pos, int current, int req) {
  if (current < 0 || current > N) return 1LL << 45;
  long long &Res = dp[pos][current][req];
  if (Res == -1) {
    Res = 1LL << 45;
    if (pos == N)
      Res = (current == req) ? 0 : 1LL << 45;
    else {
      Res = min(Res, L[pos] + calc(pos + 1, current + 1, req));
      Res = min(Res, R[pos] + calc(pos + 1, current - 1, req));
    }
  }
  return Res;
}
int main() {
  cin >> N >> M;
  for (int i = 0; i < N; i++) cin >> L[i];
  for (int i = 0; i < N; i++) cin >> R[i];
  A = std::vector<std::vector<long long> >(N + 1,
                                           std::vector<long long>(N + 1));
  res = B = A;
  memset(dp, -1, sizeof(dp));
  for (int i = 0; i <= N; i++) {
    for (int j = 0; j <= N; j++) {
      res[i][j] = 1LL << 45;
      A[i][j] = calc(0, i, j);
    }
  }
  res = Pow(A, M);
  cout << res[0][0] << endl;
  return 0;
}
