#include <bits/stdc++.h>
const long long MOD = 1000000007;
using namespace std;
long long a[30], b[30], c[100], t[100][100], ans[100][100], n, m,
    inf = 3000000000ll;
int f;
void solve(int j, int i, int bal, long long val) {
  if (i > n) {
    t[j][bal] = min(t[j][bal], val);
    return;
  }
  if (bal < 2 * n) solve(j, i + 1, bal + 1, val + a[i]);
  if (bal > 0) solve(j, i + 1, bal - 1, val + b[i]);
}
void mult(long long a[100][100], long long b[100][100], int f) {
  long long res[100][100];
  for (int i = 0; i <= 2 * n; i++)
    for (int j = 0; j <= 2 * n; j++) res[i][j] = inf;
  for (int i = 0; i <= 2 * n; i++)
    for (int j = 0; j <= 2 * n; j++)
      for (int k = 0; k <= 2 * n; k++)
        res[i][j] = min(res[i][j], a[i][k] + b[k][j]);
  if (f == 1) {
    for (int i = 0; i <= 2 * n; i++)
      for (int j = 0; j <= 2 * n; j++) ans[i][j] = res[i][j];
  } else {
    for (int i = 0; i <= 2 * n; i++)
      for (int j = 0; j <= 2 * n; j++) t[i][j] = res[i][j];
  }
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) cin >> a[i];
  for (int i = 1; i <= n; i++) cin >> b[i];
  for (int i = 0; i <= 2 * n; i++)
    for (int j = 0; j <= 2 * n; j++) t[i][j] = inf;
  for (int i = 0; i <= 2 * n; i++) solve(i, 1, i, 0ll);
  f = 0;
  while (m > 0) {
    if (m % 2) {
      if (f == 0) {
        for (int i = 0; i <= 2 * n; i++)
          for (int j = 0; j <= 2 * n; j++) ans[i][j] = t[i][j];
      } else
        mult(ans, t, 1);
      f = 1;
    }
    m /= 2;
    mult(t, t, 2);
  }
  cout << ans[0][0];
  return 0;
}
