#include <bits/stdc++.h>
using namespace std;
inline void chkmin(int &a, int b) {
  if (a > b) a = b;
  return;
}
const int N = 22;
int g[N * 100][N * 100], n, m, f[N * 2][N * 2], a[N], b[N];
int main() {
  cin >> n >> m;
  for (int _end_ = (n - 1), i = (0); i <= _end_; ++i) cin >> a[i];
  for (int _end_ = (n - 1), i = (0); i <= _end_; ++i) cin >> b[i];
  int LMT = min(m, 100) * n;
  fill(g[0], g[LMT + 1], 0x3F3F3F3F), g[0][0] = 0;
  for (int _end_ = (LMT - 1), i = (0); i <= _end_; ++i)
    for (int _end_ = (i), j = (0); j <= _end_; ++j) {
      chkmin(g[i + 1][j + 1], g[i][j] + a[i % n]);
      if (j) chkmin(g[i + 1][j - 1], g[i][j] + b[i % n]);
    }
  cout << g[LMT][0] + (m - min(m, 100)) / 2 * (g[LMT][0] - g[LMT - n * 2][0])
       << endl;
  return 0;
}
