#include <bits/stdc++.h>
using namespace std;
int const inf = 1000000000;
int g[22 * 100][22 * 100];
int n, m;
void inline go(int &a, int b) {
  if (b < a) a = b;
  return;
}
int a[22], b[22];
int main() {
  scanf("%d%d", &n, &m);
  for (int(i) = 0; (i) < (n); (i)++) scanf("%d", &a[i]);
  for (int(i) = 0; (i) < (n); (i)++) scanf("%d", &b[i]);
  int M = min(m, 100) * n;
  for (int(i) = 0; (i) < (1 + M); (i)++)
    for (int(j) = 0; (j) < (i + 1); (j)++) g[i][j] = inf;
  g[0][0] = 0;
  for (int(i) = 0; (i) < (M); (i)++)
    for (int(j) = 0; (j) < (i + 1); (j)++) {
      go(g[i + 1][j + 1], g[i][j] + a[i % n]);
      if (j) go(g[i + 1][j - 1], g[i][j] + b[i % n]);
    }
  printf("%d\n", g[M][0] + (m - min(m, 100)) / 2 * (g[M][0] - g[M - 2 * n][0]));
  return 0;
}
