#include <bits/stdc++.h>
using namespace std;
const long long INF = 0x3f3f3f3f3f3f3f3fLL;
int n, m;
long long a[25], b[25];
long long A[25][25], B[25][25], f[25][25];
void init(long long a[25][25]) {
  memset(a, 0x3f, sizeof(A));
  for (int i = 0; i <= n; i++) a[i][i] = 0;
}
void mul(long long a[][25], long long b[][25], long long c[][25]) {
  static long long tmp[25][25];
  memset(tmp, 0x3f, sizeof(A));
  for (int i = 0; i <= n; i++)
    for (int j = 0; j <= n; j++)
      for (int k = 0; k <= n; k++)
        tmp[i][j] = min(tmp[i][j], a[i][k] + b[k][j]);
  memcpy(c, tmp, sizeof(tmp));
}
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];
  init(A), init(f);
  for (int k = 1; k <= n; k++) {
    init(B);
    for (int i = 0; i <= n; i++)
      for (int j = 0; j <= n; j++)
        i + 1 == j   ? B[j][i] = a[k]
        : j + 1 == i ? B[j][i] = b[k]
                     : B[j][i] = INF;
    mul(B, A, A);
  }
  for (; m; m >>= 1, mul(A, A, A))
    if (m & 1) mul(f, A, f);
  cout << f[0][0] << endl;
  return 0;
}
