#include <cstdio>
#include <iostream>
#include <string>
#include <sstream>
#include <stack>
#include <algorithm>
#include <cmath>
#include <queue>
#include <map>
#include <set>
#include <cstdlib>
#include <bitset>
#include <tuple>
#include <assert.h>
#include <deque>
#include <bitset>
#include <iomanip>
#include <limits>
#include <chrono>
#include <random>
#include <array>
#include <unordered_map>
#include <functional>
#include <complex>
#include <numeric>
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }

constexpr long long MAX = 5100000;
constexpr long long INF = 1LL << 60;
constexpr int inf = 1 << 28;
//constexpr long long mod = 1000000007LL;
//constexpr long long mod = 998244353LL;

using namespace std;
typedef unsigned long long ull;
typedef long long ll;


int main()
{
	/*
	cin.tie(nullptr);
	ios::sync_with_stdio(false);
	*/

	int kkt = 1;
	while (kkt--) {
		string s, t; cin >> s >> t;
		queue<char> ss, tt;
		for (int i = 0; i < s.size(); i++) ss.push(s[i]);
		for (int i = 0; i < t.size(); i++) tt.push(t[i]);
		bool ok = false;
		{
			queue<char> sq = ss, tq = tt;

			bool flag = true;
			for (int i = 0; i < s.size(); i++) {
				bool check = false;
				if (i % 2 == 0) {
					while (!sq.empty()) {
						if (sq.front() == s[i]) {
							check = true;
							sq.pop();
							break;
						}
						sq.pop();
					}
				}
				else {
					while (!tq.empty()) {
						if (tq.front() == s[i]) {
							check = true;
							tq.pop();
							break;
						}
						tq.pop();
					}
				}
				if (!check) flag = false;
			}
			if (flag) ok = true;
		}
		{
			queue<char> sq = ss, tq = tt;

			bool flag = true;
			for (int i = 0; i < s.size(); i++) {
				bool check = false;
				if (i % 2 == 1) {
					while (!sq.empty()) {
						if (sq.front() == s[i]) {
							check = true;
							sq.pop();
							break;
						}
						sq.pop();
					}
				}
				else {
					while (!tq.empty()) {
						if (tq.front() == s[i]) {
							check = true;
							tq.pop();
							break;
						}
						tq.pop();
					}
				}
				if (!check) flag = false;
			}
			if (flag) ok = true;
		}
		if (ok) puts("Yes");
		else puts("No");
	}
	return 0;

}


### Prompt

Create a solution in cpp for the following problem:

Example

Input

acmicpc
tsukuba


Output

No

### Response

```cpp
#include <cstdio>
#include <iostream>
#include <string>
#include <sstream>
#include <stack>
#include <algorithm>
#include <cmath>
#include <queue>
#include <map>
#include <set>
#include <cstdlib>
#include <bitset>
#include <tuple>
#include <assert.h>
#include <deque>
#include <bitset>
#include <iomanip>
#include <limits>
#include <chrono>
#include <random>
#include <array>
#include <unordered_map>
#include <functional>
#include <complex>
#include <numeric>
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }

constexpr long long MAX = 5100000;
constexpr long long INF = 1LL << 60;
constexpr int inf = 1 << 28;
//constexpr long long mod = 1000000007LL;
//constexpr long long mod = 998244353LL;

using namespace std;
typedef unsigned long long ull;
typedef long long ll;


int main()
{
	/*
	cin.tie(nullptr);
	ios::sync_with_stdio(false);
	*/

	int kkt = 1;
	while (kkt--) {
		string s, t; cin >> s >> t;
		queue<char> ss, tt;
		for (int i = 0; i < s.size(); i++) ss.push(s[i]);
		for (int i = 0; i < t.size(); i++) tt.push(t[i]);
		bool ok = false;
		{
			queue<char> sq = ss, tq = tt;

			bool flag = true;
			for (int i = 0; i < s.size(); i++) {
				bool check = false;
				if (i % 2 == 0) {
					while (!sq.empty()) {
						if (sq.front() == s[i]) {
							check = true;
							sq.pop();
							break;
						}
						sq.pop();
					}
				}
				else {
					while (!tq.empty()) {
						if (tq.front() == s[i]) {
							check = true;
							tq.pop();
							break;
						}
						tq.pop();
					}
				}
				if (!check) flag = false;
			}
			if (flag) ok = true;
		}
		{
			queue<char> sq = ss, tq = tt;

			bool flag = true;
			for (int i = 0; i < s.size(); i++) {
				bool check = false;
				if (i % 2 == 1) {
					while (!sq.empty()) {
						if (sq.front() == s[i]) {
							check = true;
							sq.pop();
							break;
						}
						sq.pop();
					}
				}
				else {
					while (!tq.empty()) {
						if (tq.front() == s[i]) {
							check = true;
							tq.pop();
							break;
						}
						tq.pop();
					}
				}
				if (!check) flag = false;
			}
			if (flag) ok = true;
		}
		if (ok) puts("Yes");
		else puts("No");
	}
	return 0;

}


```