#include <bits/stdc++.h>
using namespace std;
const unsigned INF = 2000000007;
unsigned e[25][21][21];
int main() {
  int n, m, a[20], b[20], dp[21][21];
  memset(e, 127, sizeof(e));
  scanf("%d%d", &n, &m);
  for (int i = 0; i < n; i++) scanf("%d", a + i);
  for (int i = 0; i < n; i++) scanf("%d", b + i);
  for (int s = 0; s <= 20; s++) {
    memset(dp, 63, sizeof(dp));
    dp[0][s] = 0;
    for (int i = 0; i < n; i++) {
      for (int j = 0; j <= 19; j++)
        dp[i + 1][j + 1] = min(dp[i + 1][j + 1], dp[i][j] + a[i % n]);
      for (int j = 1; j <= 20; j++)
        dp[i + 1][j - 1] = min(dp[i + 1][j - 1], dp[i][j] + b[i % n]);
    }
    for (int t = 0; t <= 20; t++) e[0][s][t] = dp[n][t];
  }
  vector<unsigned> u(21, INF);
  for (int o = u[0] = 0; o < 24; o++) {
    if (m & 1 << o) {
      vector<unsigned> v(21, INF);
      for (int i = 0; i <= 20; i++)
        for (int j = 0; j <= 20; j++) v[i] = min(v[i], u[j] + e[o][j][i]);
      u.swap(v);
    }
    for (int k = 0; k <= 20; k++)
      for (int i = 0; i <= 20; i++)
        for (int j = 0; j <= 20; j++)
          e[o + 1][i][j] = min(e[o + 1][i][j], e[o][i][k] + e[o][k][j]);
  }
  printf("%d\n", u[0]);
}
