#include<bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define INF 1000000010
#define EPS 1e-9

#define repi(i,x,n) for(int i=x;i<n;i++)
#define rep(i,n) repi(i,0,n)
#define repn(i,n) for(int i=n;i>=0;i--)

string s, t;
string s1, s2;
int n;
int dp1[1024][1024];
int dp2[1024][1024];

int main(){
  cin >> s >> t;
  for (int i = 0; i < s.length(); i++) {
    if (i % 2) {
      s1 += s[i];
    }
    else {
      s2 += s[i];
    }
  }
  

  for (int i = 0; i < s1.length(); i++) {
    for (int j = 0; j < t.length(); j++) {
      dp1[i + 1][j + 1] = max(dp1[i][j + 1], dp1[i + 1][j]);
      if (s1[i] == t[j]) {
	dp1[i + 1][j + 1] = max(dp1[i + 1][j + 1], dp1[i][j] + 1);
      }

      //cout << dp1[i + 1][j + 1] << ' ';
    }
    //cout << endl;
  }

  for (int i = 0; i < s2.length(); i++) {
    for (int j = 0; j < t.length(); j++) {
      dp2[i + 1][j + 1] = max(dp2[i][j + 1], dp2[i + 1][j]);
      if (s2[i] == t[j]) {
	dp2[i + 1][j + 1] = max(dp2[i + 1][j + 1], dp2[i][j] + 1);
      }

      //cout << dp2[i + 1][j + 1] << ' ';
    }
    //cout << endl;
  }

  if (dp1[s1.length()][t.length()] == s1.length() || dp2[s2.length()][t.length()] == s2.length()) {
    cout << "Yes" << endl;
  }
  else {
    cout << "No" << endl;
  }
}



### Prompt

Create a solution in CPP for the following problem:

Example

Input

acmicpc
tsukuba


Output

No

### Response

```cpp
#include<bits/stdc++.h>
using namespace std;
#define MOD 1000000007
#define INF 1000000010
#define EPS 1e-9

#define repi(i,x,n) for(int i=x;i<n;i++)
#define rep(i,n) repi(i,0,n)
#define repn(i,n) for(int i=n;i>=0;i--)

string s, t;
string s1, s2;
int n;
int dp1[1024][1024];
int dp2[1024][1024];

int main(){
  cin >> s >> t;
  for (int i = 0; i < s.length(); i++) {
    if (i % 2) {
      s1 += s[i];
    }
    else {
      s2 += s[i];
    }
  }
  

  for (int i = 0; i < s1.length(); i++) {
    for (int j = 0; j < t.length(); j++) {
      dp1[i + 1][j + 1] = max(dp1[i][j + 1], dp1[i + 1][j]);
      if (s1[i] == t[j]) {
	dp1[i + 1][j + 1] = max(dp1[i + 1][j + 1], dp1[i][j] + 1);
      }

      //cout << dp1[i + 1][j + 1] << ' ';
    }
    //cout << endl;
  }

  for (int i = 0; i < s2.length(); i++) {
    for (int j = 0; j < t.length(); j++) {
      dp2[i + 1][j + 1] = max(dp2[i][j + 1], dp2[i + 1][j]);
      if (s2[i] == t[j]) {
	dp2[i + 1][j + 1] = max(dp2[i + 1][j + 1], dp2[i][j] + 1);
      }

      //cout << dp2[i + 1][j + 1] << ' ';
    }
    //cout << endl;
  }

  if (dp1[s1.length()][t.length()] == s1.length() || dp2[s2.length()][t.length()] == s2.length()) {
    cout << "Yes" << endl;
  }
  else {
    cout << "No" << endl;
  }
}



```