#include <bits/stdc++.h>
using namespace std;
using ll = long long;
namespace {
ll read() {
  ll x;
  cin >> x;
  return x;
}
string reads() {
  string s;
  cin >> s;
  return s;
}
void writeln() { cout << '\n'; }
template <class T, class... TS>
void writeln(T x, TS... xs) {
  cout << x << ' ';
  writeln(xs...);
}
template <class T>
void write(T x) {
  cout << x << ' ';
}
struct init {
  init() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    cout << fixed << setprecision(15);
  }
} init_;
}  // namespace
int main() {
  ll A[3][3];
  for (int i = 0; i < (3); i++)
    for (int j = 0; j < (3); j++) cin >> A[i][j];
  ll N = read();
  ll dp[41][3][3];
  for (int i = 0; i < (41); i++)
    for (int j = 0; j < (3); j++)
      for (int k = 0; k < (3); k++) dp[i][j][k] = 1e18;
  for (int j = 0; j < (3); j++)
    for (int k = 0; k < (3); k++) {
      if (j == k) {
        dp[1][j][k] = 0;
      } else {
        int l = 3 ^ j ^ k;
        dp[1][j][k] = min(A[j][k], A[j][l] + A[l][k]);
      }
    }
  for (int i = 2; i <= 40; i++) {
    for (int j = 0; j < (3); j++)
      for (int k = 0; k < (3); k++) {
        if (j == k) {
          dp[i][j][k] = 0;
        } else {
          int l = 3 ^ j ^ k;
          dp[i][j][k] = min(dp[i - 1][j][l] + A[j][k] + dp[i - 1][l][k],
                            dp[i - 1][j][k] + A[j][l] + dp[i - 1][k][j] +
                                A[l][k] + dp[i - 1][j][k]);
        }
      }
  }
  writeln(dp[N][0][2]);
}
