#include <bits/stdc++.h>
using namespace std;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
const long long maxn = 3e6;
const long long mod = 1e9 + 7;
const long double PI = acos((long double)-1);
const long long K = 50;
long long pw(long long a, long long b, long long md = mod) {
  long long res = 1;
  while (b) {
    if (b & 1) {
      res = (a * res) % md;
    }
    a = (a * a) % md;
    b >>= 1;
  }
  return (res);
}
struct Mat {
  long long m[K][K];
  Mat(int diag = -1) {
    for (int i = 0; i < K; i++)
      for (int j = 0; j < K; j++) m[i][j] = 5e18;
  }
  Mat operator*(const Mat &b) const {
    Mat c = Mat(-1);
    for (int i = 0; i < K; i++)
      for (int k = 0; k < K; k++)
        for (int j = 0; j < K; j++)
          c.m[i][j] = min(c.m[i][j], m[i][k] + b.m[k][j]);
    return (c);
  }
};
Mat pw(Mat a, long long b) {
  Mat res = a;
  while (b) {
    if (b & 1) {
      res = (a * res);
    }
    a = (a * a);
    b >>= 1;
  }
  return (res);
}
long long n, k;
long long a[K], b[K];
Mat m(-1);
long long dp[K][K];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n >> k;
  for (int i = 0; i < n; i++) cin >> a[i];
  for (int i = 0; i < n; i++) cin >> b[i];
  for (int i = 0; i < K; i++) {
    for (int j = 0; j <= n; j++)
      for (int h = 0; h < K; h++) dp[j][h] = 1e9;
    dp[0][i] = 0;
    for (int j = 0; j < n; j++)
      for (int h = 0; h < K; h++) {
        if (h < 2 * n - 1)
          dp[j + 1][h + 1] = min(dp[j + 1][h + 1], dp[j][h] + a[j]);
        if (h) dp[j + 1][h - 1] = min(dp[j + 1][h - 1], dp[j][h] + b[j]);
      }
    for (int j = 0; j < K; j++) m.m[i][j] = dp[n][j];
  }
  m = pw(m, k - 1);
  cout << m.m[0][0];
  return (0);
}
