#include <bits/stdc++.h>
using namespace std;
const long long NMax = 50;
const long long INF = 2000000005;
long long N, M;
long long A[NMax], B[NMax];
long long DP[2 * NMax][2 * NMax];
long long Matrix[NMax * 2][NMax * 2], Sol[NMax * 2][NMax * 2],
    Aux[NMax * 2][NMax * 2];
void Read() {
  cin >> N >> M;
  for (long long i = 1; i <= N; i++) cin >> A[i];
  for (long long i = 1; i <= N; i++) cin >> B[i];
}
void initialize() {
  for (long long i = 0; i <= 2 * N + 5; i++) DP[0][i] = INF;
}
void buildDP() {
  for (long long i = 0; i <= 2 * N; i++) {
    DP[i][2 * N + 1] = INF;
    initialize();
    DP[0][i] = 0;
    for (int k = 1; k <= N; k++)
      for (long long j = 0; j <= 2 * N; j++) {
        DP[k][j] = INF;
        if (j > 0) DP[k][j] = DP[k - 1][j - 1] + A[k];
        if (j < N) DP[k][j] = min(DP[k][j], DP[k - 1][j + 1] + B[k]);
      }
    for (int k = 0; k <= 2 * N; k++) Matrix[i][k] = DP[N][k];
  }
}
void buildMatrix() {
  for (long long i = 0; i <= 2 * N; i++)
    for (long long j = 0; j <= 2 * N; j++) {
      if (max(i - j, j - i) <= N)
        Matrix[i][j] = DP[N][i - j + N];
      else
        Matrix[i][j] = INF;
    }
}
void multiplicateMatrix(long long A[][NMax * 2], long long B[][NMax * 2],
                        long long C[][NMax * 2]) {
  for (long long i = 0; i <= 2 * N; i++)
    for (long long j = 0; j <= 2 * N; j++) {
      C[i][j] = INF;
      for (long long k = 0; k <= 2 * N; k++)
        C[i][j] = min(C[i][j], A[i][k] + B[k][j]);
    }
}
void Copy(long long A[][NMax * 2], long long B[][NMax * 2]) {
  for (long long i = 0; i <= 2 * N; i++)
    for (long long j = 0; j <= 2 * N; j++) A[i][j] = B[i][j];
}
void Solve() {
  bool first = 0;
  while (M > 0) {
    if (M % 2 == 1) {
      if (first == 0)
        Copy(Sol, Matrix);
      else {
        multiplicateMatrix(Sol, Matrix, Aux);
        Copy(Sol, Aux);
      }
      first = 1;
    }
    multiplicateMatrix(Matrix, Matrix, Aux);
    Copy(Matrix, Aux);
    M /= 2;
  }
  long long ans = INF;
  cout << Sol[0][0] << "\n";
}
int main() {
  Read();
  initialize();
  buildDP();
  Solve();
  return 0;
}
