#include <bits/stdc++.h>
using namespace std;
const long long maxn = 100;
const long long mod = 1e9 + 7;
const long long inf = 1e18;
struct matrix {
  long long n, m;
  vector<vector<long long> > a;
  matrix(long long n, long long m, bool f = 0) : n(n), m(m) {
    a.resize(n);
    for (long long i = 0; i < n; i++) {
      a[i].resize(m);
      fill(a[i].begin(), a[i].end(), inf);
      if (f) a[i][i] = 0;
    }
    return;
  }
  void set(long long i, long long j, long long x) {
    a[i][j] = x;
    return;
  }
  long long get(long long i, long long j) { return a[i][j]; }
  matrix operator*(const matrix &b) {
    matrix c = matrix(n, b.m);
    for (long long i = 0; i < n; i++) {
      for (long long j = 0; j < b.m; j++) {
        for (long long k = 0; k < m; k++) {
          c.a[i][j] = (c.a[i][j] + a[i][k] * b.a[k][j]) % mod;
        }
      }
    }
    return c;
  }
  matrix operator+(const matrix &b) {
    matrix c = matrix(n, m);
    for (long long i = 0; i < n; i++) {
      for (long long j = 0; j < n; j++) {
        for (long long k = 0; k < n; k++) {
          c.set(i, j, min(c.get(i, j), a[i][k] + b.a[k][j]));
        }
      }
    }
    return c;
  }
};
matrix powmat(matrix a, long long b) {
  matrix c(a.n, a.m, 1);
  while (b) {
    if (b & 1) c = c + a;
    a = a + a;
    b >>= 1;
  }
  return c;
}
long long n, m, a[maxn], b[maxn], dp[maxn][maxn][maxn];
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  ;
  long long x = 30;
  cin >> n >> m;
  for (long long i = 0; i < n; i++) {
    cin >> a[i];
  }
  for (long long i = 0; i < n; i++) {
    cin >> b[i];
  }
  for (long long i = 0; i <= x; i++) {
    for (long long j = 0; j <= x; j++) {
      dp[0][i][j] = inf;
    }
    dp[0][i][i] = 0;
  }
  for (long long i = 1; i <= n; i++) {
    for (long long j = 0; j < x; j++) {
      for (long long k = 0; k < x; k++) {
        dp[i][j][k] = inf;
        if (j) dp[i][j][k] = min(dp[i][j][k], dp[i - 1][j - 1][k] + a[i - 1]);
        if (j + 1 < x)
          dp[i][j][k] = min(dp[i][j][k], dp[i - 1][j + 1][k] + b[i - 1]);
      }
    }
  }
  matrix C(x, x);
  for (long long i = 0; i < x; i++) {
    for (long long j = 0; j < x; j++) {
      C.set(i, j, dp[n][i][j]);
    }
  }
  C = powmat(C, m);
  cout << C.get(0, 0);
  return 0;
}
