#include <bits/stdc++.h>
using namespace std;
const int inf = 127;
struct mat {
  int s[44][44];
};
int nn, a[33], b[33], f[44][44][44];
void operator*=(mat &a, const mat &b) {
  static mat c;
  memset(c.s, inf, sizeof(c.s));
  static int i, j, k;
  for (k = 0; k < nn; k++)
    for (i = 0; i < nn; i++)
      for (j = 0; j < nn; j++)
        c.s[i][j] = min(0ll + c.s[i][j], 0ll + a.s[i][k] + b.s[k][j]);
  for (i = 0; i < nn; i++)
    for (j = 0; j < nn; j++) a.s[i][j] = c.s[i][j];
}
int n, m;
int main() {
  int i, j, k;
  scanf("%d%d", &n, &m);
  nn = n << 1;
  for (i = 0; i < n; i++) scanf("%d", &a[i]);
  for (j = 0; j < n; j++) scanf("%d", &b[j]);
  memset(f, inf, sizeof(f));
  for (i = 0; i < nn; i++) f[0][i][i] = 0;
  for (i = 1; i <= n; i++) {
    for (j = 0; j < nn; j++) {
      for (k = 0; k < nn; k++) {
        if (k)
          f[i][j][k] =
              min(0ll + f[i][j][k], 0ll + f[i - 1][j][k - 1] + a[(i - 1) % n]);
        f[i][j][k] =
            min(0ll + f[i][j][k], 0ll + f[i - 1][j][k + 1] + b[(i - 1) % n]);
      }
    }
  }
  mat ans, t;
  memset(ans.s, inf, sizeof(ans.s));
  ans.s[0][0] = 0;
  for (i = 0; i < nn; i++)
    for (j = 0; j < nn; j++) t.s[i][j] = f[n][i][j];
  for (; m; m >>= 1, t *= t)
    if (m & 1) ans *= t;
  printf("%d\n", ans.s[0][0]);
}
