#include <bits/stdc++.h>
using namespace std;
int f[25 + 25][25 + 25], n, m, a[25], b[25], matrix[25 + 25][25 + 25],
    ans[25 + 25], tmp[25 + 25], temp[25 + 25][25 + 25];
void init() {
  scanf("%d%d", &n, &m);
  int i;
  for (i = 1; i < n; i++) scanf("%d", &a[i]);
  scanf("%d", &a[0]);
  for (i = 1; i < n; i++) scanf("%d", &b[i]);
  scanf("%d", &b[0]);
}
void add() {
  int i, j, k;
  memset(tmp, -1, sizeof(tmp));
  for (i = 0; i <= n + n; i++)
    if (ans[i] != -1)
      for (j = 0; j <= n + n; j++)
        if (matrix[i][j] != -1 &&
            (tmp[j] == -1 || ans[i] + matrix[i][j] < tmp[j]))
          tmp[j] = ans[i] + matrix[i][j];
  for (i = 0; i <= n + n; i++) ans[i] = tmp[i];
}
void mul() {
  int i, j, k;
  memset(temp, -1, sizeof(temp));
  for (i = 0; i <= n + n; i++)
    for (j = 0; j <= n + n; j++)
      if (matrix[i][j] != -1)
        for (k = 0; k <= n + n; k++)
          if (matrix[j][k] != -1) {
            if (temp[i][k] == -1 || matrix[i][j] + matrix[j][k] < temp[i][k])
              temp[i][k] = matrix[i][j] + matrix[j][k];
          }
  for (i = 0; i <= n + n; i++)
    for (j = 0; j <= n + n; j++) matrix[i][j] = temp[i][j];
}
void work() {
  int i, j, k;
  for (k = 0; k <= n + n; k++) {
    memset(f, -1, sizeof(f));
    f[0][k] = 0;
    for (i = 0; i < n + n; i++)
      for (j = 0; j <= n + n; j++)
        if (f[i][j] != -1) {
          if (j) {
            if (f[i + 1][j - 1] == -1 ||
                f[i][j] + b[(i + 1) % n] < f[i + 1][j - 1])
              f[i + 1][j - 1] = f[i][j] + b[(i + 1) % n];
          }
          if (j < n + n) {
            if (f[i + 1][j + 1] == -1 ||
                f[i][j] + a[(i + 1) % n] < f[i + 1][j + 1])
              f[i + 1][j + 1] = f[i][j] + a[(i + 1) % n];
          }
        }
    for (i = 0; i <= n + n; i++) matrix[k][i] = f[n + n][i];
  }
  m /= 2;
  memset(ans, -1, sizeof(ans));
  ans[0] = 0;
  while (m) {
    if (m & 1) add();
    mul();
    m >>= 1;
  }
  printf("%d\n", ans[0]);
}
int main() {
  init();
  work();
  return 0;
}
