#include<bits/stdc++.h>
using namespace std;
string s1,s2;
int dp[1000][1000];
int wt_i,wt_d,wt_m;
int m,n;
int ED(int i,int j)
{
if(i==m)
{
return n-j;
}
if(j==n)
{
return m-i;
}
if(dp[i][j]!=-1)
return dp[i][j];
if(s1[i]==s2[j])
{
return dp[i][j]=ED(i+1,j+1);
}
else
{
int ins=wt_i+ED(i,j+1);
int del=wt_d+ED(i+1,j);
int mod=wt_m+ED(i+1,j+1);
return dp[i][j]=min(ins,min(del,mod));
}
}
int main()
{
cin>>s1>>s2;
cin>>wt_i>>wt_d>>wt_m;
m=s1.size();
n=s2.size();
memset(dp,-1,sizeof(dp));
int ans=ED(0,0);
cout<<ans<<endl;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKc3RyaW5nIHMxLHMyOwppbnQgZHBbMTAwMF1bMTAwMF07CmludCB3dF9pLHd0X2Qsd3RfbTsKaW50IG0sbjsKaW50IEVEKGludCBpLGludCBqKQp7CmlmKGk9PW0pIAp7CnJldHVybiBuLWo7Cn0KaWYoaj09bikKewpyZXR1cm4gbS1pOwp9CmlmKGRwW2ldW2pdIT0tMSkKcmV0dXJuIGRwW2ldW2pdOwppZihzMVtpXT09czJbal0pCnsKCgpyZXR1cm4gZHBbaV1bal09RUQoaSsxLGorMSk7Cn0KZWxzZQp7CgppbnQgaW5zPXd0X2krRUQoaSxqKzEpOwppbnQgZGVsPXd0X2QrRUQoaSsxLGopOwppbnQgbW9kPXd0X20rRUQoaSsxLGorMSk7CnJldHVybiBkcFtpXVtqXT1taW4oaW5zLG1pbihkZWwsbW9kKSk7Cgp9Cn0KCmludCBtYWluKCkKewpjaW4+PnMxPj5zMjsKY2luPj53dF9pPj53dF9kPj53dF9tOwptPXMxLnNpemUoKTsKbj1zMi5zaXplKCk7Cm1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKaW50IGFucz1FRCgwLDApOwpjb3V0PDxhbnM8PGVuZGw7Cn0=