#include <cstdio>
#include <iostream>
#include <string>
#include <algorithm>
#include <utility>
#include <queue>
#include <stack>
#include <string>
#include <cstring>
#include <cmath>
#include <map>
#include <vector>
#include <array>
#include <set>
#include <climits>
#include <sstream>
#include <iomanip>
#include <cassert>
#include <bitset>
#include <numeric>
using namespace std;
#define MOD 1000000007
#define MAXN 2002
long long dp[MAXN][MAXN];
string a , b;
int n;
int edit(int current_a_index , int current_b_index){
if((int)a.size()==current_a_index && (int)b.size()==current_b_index){
return 0;
}
if((int)a.size()==current_a_index){
return n*(b.size()-current_b_index);
}
if((int)b.size()==current_b_index){
return n*(a.size()-current_a_index);
}
if(dp[current_a_index][current_b_index]!=-1){
//cerr<<"found in dp"<<endl;
return dp[current_a_index][current_b_index];
}
return dp[current_a_index][current_b_index]=min({edit(current_a_index+1,current_b_index+1)+abs(a[current_a_index]-b[current_b_index]),edit(current_a_index+1,current_b_index)+n,edit(current_a_index,current_b_index+1)+n});
}
int main(void){
#ifdef HELL_JUDGE
freopen("input","r",stdin);
freopen("output","w",stdout);
freopen("error","w",stderr);
#endif
cin>>a>>b;
memset(dp ,-1 , sizeof(dp));
cin>>n;
cout<<edit(0,0)<<endl;
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dXRpbGl0eT4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxhcnJheT4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGNhc3NlcnQ+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxudW1lcmljPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwojZGVmaW5lIE1PRCAxMDAwMDAwMDA3CiNkZWZpbmUgTUFYTiAyMDAyCmxvbmcgbG9uZyBkcFtNQVhOXVtNQVhOXTsKc3RyaW5nIGEgLCBiOyAKaW50IG47CmludCBlZGl0KGludCBjdXJyZW50X2FfaW5kZXggLCBpbnQgY3VycmVudF9iX2luZGV4KXsKICAgIGlmKChpbnQpYS5zaXplKCk9PWN1cnJlbnRfYV9pbmRleCAmJiAoaW50KWIuc2l6ZSgpPT1jdXJyZW50X2JfaW5kZXgpewogICAgICAgIHJldHVybiAwOwogICAgfQogICAgaWYoKGludClhLnNpemUoKT09Y3VycmVudF9hX2luZGV4KXsKICAgICAgICByZXR1cm4gbiooYi5zaXplKCktY3VycmVudF9iX2luZGV4KTsKICAgIH0KICAgIGlmKChpbnQpYi5zaXplKCk9PWN1cnJlbnRfYl9pbmRleCl7CiAgICAgICAgcmV0dXJuIG4qKGEuc2l6ZSgpLWN1cnJlbnRfYV9pbmRleCk7CiAgICB9CiAgICBpZihkcFtjdXJyZW50X2FfaW5kZXhdW2N1cnJlbnRfYl9pbmRleF0hPS0xKXsKICAgICAgICAvL2NlcnI8PCJmb3VuZCBpbiBkcCI8PGVuZGw7CiAgICAgICAgcmV0dXJuIGRwW2N1cnJlbnRfYV9pbmRleF1bY3VycmVudF9iX2luZGV4XTsKICAgIH0KICAgIHJldHVybiBkcFtjdXJyZW50X2FfaW5kZXhdW2N1cnJlbnRfYl9pbmRleF09bWluKHtlZGl0KGN1cnJlbnRfYV9pbmRleCsxLGN1cnJlbnRfYl9pbmRleCsxKSthYnMoYVtjdXJyZW50X2FfaW5kZXhdLWJbY3VycmVudF9iX2luZGV4XSksZWRpdChjdXJyZW50X2FfaW5kZXgrMSxjdXJyZW50X2JfaW5kZXgpK24sZWRpdChjdXJyZW50X2FfaW5kZXgsY3VycmVudF9iX2luZGV4KzEpK259KTsKfQppbnQgbWFpbih2b2lkKXsKI2lmZGVmIEhFTExfSlVER0UKICAgIGZyZW9wZW4oImlucHV0IiwiciIsc3RkaW4pOwogICAgZnJlb3Blbigib3V0cHV0IiwidyIsc3Rkb3V0KTsKICAgIGZyZW9wZW4oImVycm9yIiwidyIsc3RkZXJyKTsKI2VuZGlmIAogICAgY2luPj5hPj5iOwogICAgbWVtc2V0KGRwICwtMSAsIHNpemVvZihkcCkpOwogICAgY2luPj5uOwogICAgY291dDw8ZWRpdCgwLDApPDxlbmRsOwogICAgcmV0dXJuIDA7Cn0=