#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const ll mod = 1000000007; const ll INF = (ll)1000000007 * 1000000007; typedef pair P; #define rep(i,n) for(int i=0;i=0;i--) #define Rep(i,sta,n) for(int i=sta;i=sta;i--) typedef long double ld; const ld eps = 1e-8; const ld pi = acos(-1.0); typedef pair LP; int dx[4]={1,-1,0,0}; int dy[4]={0,0,1,-1}; templatebool chmax(T &a, const T &b) {if(abool chmin(T &a, const T &b) {if(b c,d; void solve(){ cin >> n >> m; rep(i,n) { cin >> a[i]; c.push_back(0); rep(j,a[i]) c.push_back(1); } rep(i,m) { cin >> b[i]; d.push_back(0); rep(j,b[i]) d.push_back(1); } int S=c.size(),T=d.size(); // rep(i,S) cout << c[i] << " "; // cout << "" << endl; // rep(i,T) cout << d[i] << " "; // cout << "" << endl; rep(i,S+1) dp[i][0]=i; rep(i,T+1) dp[0][i]=i; Rep(i,1,S+1){ Rep(j,1,T+1){ dp[i][j]=min(dp[i-1][j],dp[i][j-1])+1; chmin(dp[i][j],dp[i-1][j-1]+(c[i-1]!=c[j-1])); //cout << i << " " << j << " " << dp[i][j] << endl; } } cout << dp[S][T] << endl; } int main(){ ios::sync_with_stdio(false); cin.tie(0); cout << fixed << setprecision(50); solve(); }