#include using namespace std; struct cww{cww(){ios::sync_with_stdio(false);cin.tie(0);}}init; #define N 0 #define D 1 #define I 2 typedef long long LL; typedef vector V; typedef vector VV; typedef vector VVV; const LL INF=1e15; int main(){ int n,m; cin>>n>>m; string S,T; cin>>S>>T; VVV dp(n+1,VV(m+1,V(3,INF))); VVV prev(n+1,VV(m+1,V(3,-1))); dp[0][0][0]=0; for(int i=0;i<=n;i++) for(int j=0;j<=m;j++){ V &now=dp[i][j]; if(inow[N]+9){ nxt[D]=now[N]+9;p[D]=N; } if(nxt[D]>now[I]+9){ nxt[D]=now[I]+9;p[D]=I; } if(nxt[D]>now[D]+2){ nxt[D]=now[D]+2;p[D]=D; } } if(jnow[N]+9){ nxt[I]=now[N]+9;p[I]=N; } if(nxt[I]>now[I]+2){ nxt[I]=now[I]+2;p[I]=I; } if(nxt[I]>now[D]+9){ nxt[I]=now[D]+9;p[I]=D; } } if(inow[N]+cost){ nxt[N]=now[N]+cost;p[N]=N; } if(nxt[N]>now[I]+cost){ nxt[N]=now[I]+cost;p[N]=I; } if(nxt[N]>now[D]+cost){ nxt[N]=now[D]+cost;p[N]=D; } } } LL res=INF; int pp=-1; for(int i=0;i<3;i++)if(res>dp[n][m][i]){ res=dp[n][m][i]; pp=i; } cout<0||t>0){ int np=prev[s][t][pp]; // cout<