#include <bits/stdc++.h>
using namespace std;
const int Max = 5e5 + 5, Mod = 998244353;
long long n, k, a[22], b[22], dp[22][22][22];
int OP, CL;
long long Try(int i, int op, int cl) {
  if (op < 0) cl++, op = 0;
  if (i == n) return (op == OP && cl == CL ? 0 : 1e16);
  long long& ret = dp[i][op][cl];
  if (ret + 1) return ret;
  long long c1 = Try(i + 1, op + 1, cl) + a[i];
  long long c2 = Try(i + 1, op - 1, cl) + b[i];
  return ret = min({(long long)1e16, c1, c2});
}
int m;
vector<vector<long long>> init(long long x) {
  return vector<vector<long long>>(m, vector<long long>(m, x));
}
vector<vector<long long>> mult(vector<vector<long long>>& a,
                               vector<vector<long long>>& b) {
  vector<vector<long long>> Res = init(1e15);
  for (int i = 0; i < m; i++)
    for (int k = 0; k < m; k++)
      for (int j = 0; j < m; j++) Res[i][j] = min(Res[i][j], a[i][k] + b[k][j]);
  return Res;
}
vector<vector<long long>> fp(vector<vector<long long>>& x, long long p) {
  if (p == 1) return x;
  vector<vector<long long>> y = fp(x, p >> 1);
  y = mult(y, y);
  if (p & 1) y = mult(y, x);
  return y;
}
int main() {
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) cin >> b[i];
  if (n == 1) {
    a[n] = a[0];
    b[n] = b[0];
    n++;
    k /= 2;
  }
  vector<pair<int, int>> v;
  m = 2 * n + 1;
  vector<vector<long long>> T = init(1e16);
  for (int i = 0; i < m; i++) {
    for (int j = 0; j <= n; j++) {
      for (int k = 0; k <= n; k++) {
        OP = j;
        CL = k;
        int jj = i - CL + OP;
        if (i - CL >= 0 && jj < m && jj >= 0) {
          memset(dp, -1, sizeof(dp));
          T[i][jj] = min(T[i][jj], Try(0, 0, 0));
        }
      }
    }
  }
  T = fp(T, k);
  cout << T[0][0] << endl;
  return 0;
}
