#include <bits/stdc++.h>
using namespace std;
const long long INF = 1LL << 40;
int n, m;
int a[20], b[20];
vector<vector<long long> > calc(const vector<vector<long long> > &a,
                                const vector<vector<long long> > &b) {
  int N = a.size();
  vector<vector<long long> > ret(N, vector<long long>(N, INF));
  for (int k = 0; k < (int)(N); k++)
    for (int i = 0; i < (int)(N); i++)
      for (int j = 0; j < (int)(N); j++)
        ret[i][j] = min(ret[i][j], a[i][k] + b[k][j]);
  return ret;
}
vector<vector<long long> > power(vector<vector<long long> > a, int p) {
  int N = a.size();
  vector<vector<long long> > ret(N, vector<long long>(N, INF));
  for (int i = 0; i < (int)(N); i++) ret[i][i] = 0;
  while (p > 0) {
    if (p & 1) ret = calc(ret, a);
    a = calc(a, a);
    p >>= 1;
  }
  return ret;
}
long long dp[32][32];
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n >> m;
  for (int i = 0; i < (int)(n); i++) cin >> a[i];
  for (int i = 0; i < (int)(n); i++) cin >> b[i];
  vector<vector<long long> > x(n + 1, vector<long long>(n + 1, INF));
  for (int k = 0; k < (int)(n + 1); k++) {
    for (int i = 0; i < (int)(32); i++)
      for (int j = 0; j < (int)(32); j++) dp[i][j] = INF;
    dp[0][k] = 0;
    for (int i = 0; i < (int)(n); i++) {
      for (int j = 0; j < (int)(n + 1); j++) {
        if (j > 0) dp[i + 1][j] = min(dp[i + 1][j], dp[i][j - 1] + a[i]);
        dp[i + 1][j] = min(dp[i + 1][j], dp[i][j + 1] + b[i]);
      }
    }
    for (int i = 0; i < (int)(n + 1); i++) x[k][i] = dp[n][i];
  }
  cout << power(x, m)[0][0] << endl;
  return 0;
}
