#include <bits/stdc++.h>
const int maxn = 81;
int best[maxn + 1][maxn + 1];
int a[maxn + 1][maxn + 1], b[maxn + 1][maxn + 1], result[maxn + 1][maxn + 1];
int n, N, m;
int qa[maxn + 1], qb[maxn + 1];
void init() {
  int i, j, k;
  scanf("%d%d", &n, &m);
  N = 4 * n;
  for (i = 0; i < n; ++i) scanf("%d", &qa[i]);
  for (i = 0; i < n; ++i) scanf("%d", &qb[i]);
}
void combine(int a[maxn + 1][maxn + 1], int b[maxn + 1][maxn + 1],
             int c[maxn + 1][maxn + 1]) {
  int i, j, k;
  for (i = 0; i < N; ++i)
    for (j = 0; j < N; ++j) {
      c[i][j] = -1;
      for (k = 0; k < N; ++k)
        if ((a[i][k] != -1) && (b[k][j] != -1))
          if ((c[i][j] == -1) || (a[i][k] + b[k][j] < c[i][j]))
            c[i][j] = a[i][k] + b[k][j];
    }
}
void gei(int a[maxn + 1][maxn + 1], int b[maxn + 1][maxn + 1]) {
  int i, j;
  for (i = 0; i < N; ++i)
    for (j = 0; j < N; ++j) a[i][j] = b[i][j];
}
void calc_result() {
  bool first = true;
  int i, j, k;
  while (m) {
    if (m % 2 == 1) {
      if (first) {
        gei(result, a);
        first = false;
      } else {
        combine(result, a, b);
        gei(result, b);
      }
    }
    combine(a, a, b);
    gei(a, b);
    m /= 2;
  }
}
void calc_best() {
  int w, i, j, zx, sum, cost;
  for (i = -n; i <= n; ++i)
    for (j = -n; j <= n; ++j) best[i + n][j + n] = -1;
  for (w = 0; w < (1 << n); ++w) {
    zx = sum = cost = 0;
    for (i = 0; i < n; ++i) {
      if (w & (1 << i)) {
        ++sum;
        cost += qa[i];
      } else {
        --sum;
        cost += qb[i];
      }
      if (sum < zx) zx = sum;
    }
    if ((best[sum + n][zx + n] == -1) || (cost < best[sum + n][zx + n]))
      best[sum + n][zx + n] = cost;
  }
}
void calc_a() {
  int i, j, k, t;
  for (i = 0; i < N; ++i)
    for (j = 0; j < N; ++j) a[i][j] = -1;
  for (i = 0; i < N; ++i) {
    for (j = -n; j <= n; ++j)
      for (k = -n; k <= n; ++k)
        if (best[j + n][k + n] != -1) {
          if ((i + k >= 0) && (i + j < N)) {
            if ((a[i][i + j] == -1) || (best[j + n][k + n] < a[i][i + j]))
              a[i][i + j] = best[j + n][k + n];
          }
        }
  }
}
void work() {
  calc_best();
  calc_a();
  calc_result();
}
void output() { printf("%d\n", result[0][0]); }
int main() {
  init();
  work();
  output();
  return 0;
}
