Problem:
MathJax.Hub.Config({ tex2jax: { inlineMath: [["$","$"], ["\\(","\\)"]], processEscapes: true }});

M and A

The CEO of the company named $S$ is planning M&A with another company named $T$. M&A is an abbreviation for "Mergers and Acquisitions". The CEO wants to keep the original company name $S$ through the M&A on the plea that both company names are mixed into a new one.

The CEO insists that the mixed company name after the M&A is produced as follows.

Let $s$ be an arbitrary subsequence of $S$, and $t$ be an arbitrary subsequence of $T$. The new company name must be a string of the same length to $S$ obtained by alternatively lining up the characters in $s$ and $t$. More formally, $s_0 + t_0 + s_1 + t_1 + ...$ or $t_0 + s_0 + t_1 + s_1 + ... $ can be used as the company name after M&A. Here, $s_k$ denotes the $k$-th (0-based) character of string $s$. Please note that the lengths of $s$ and $t$ will be different if the length of $S$ is odd. In this case, the company name after M&A is obtained by $s_0 + t_0 + ... + t_{|S|/2} + s_{|S|/2+1}$ or $t_0 + s_0 + ... + s_{|S|/2} + t_{|S|/2+1}$ ($|S|$ denotes the length of $S$ and "/" denotes integer division).

A subsequence of a string is a string which is obtained by erasing zero or more characters from the original string. For example, the strings "abe", "abcde" and "" (the empty string) are all subsequences of the string "abcde".

You are a programmer employed by the acquiring company. You are assigned a task to write a program that determines whether it is possible to make $S$, which is the original company name, by mixing the two company names.

Input

The input consists of a single test case. The test case consists of two lines.

The first line contains a string $S$ which denotes the name of the company that you belong to. The second line contains a string $T$ which denotes the name of the target company of the planned M&A. The two names $S$ and $T$ are non-empty and of the same length no longer than 1,000 characters, and all the characters used in the names are lowercase English letters.

Output

Print "Yes" in a line if it is possible to make original company name by combining $S$ and $T$. Otherwise, print "No" in a line.

Sample Input 1

acmicpc
tsukuba

Output for the Sample Input 1

No

Sample Input 2

hoge
moen

Output for the Sample Input 2

Yes

Sample Input 3

abcdefg
xacxegx

Output for the Sample Input 3

Yes

Solution in C (judge verdict: Time Limit Exceeded)

/*
AOJ #2727
title:M and A
@kankichi573
*/

#include <stdio.h>
#include <string.h>

int strcmp_wild(char *s1,char *s2)
{
  //printf("s1=%s|s2=%s\n",s1,s2);

  if(!*s1 && !*s2)
    return (1);
  else if(*s1=='*' && !*(s1+1) && !*s2)
    return (1);
  else if(!*s1 || !*s2)
    return (0);
  else if(*s1 == '*')
    return( strcmp_wild(s1+1,s2) || strcmp_wild(s1,s2+1));
  else if(*s1 == *s2)
    return( strcmp_wild(s1+1,s2+1));
  else
    return(0);
}

char s[1001],t[1001];

int solve(char *s,char *t)
{

  int i,len = strlen(s),r1,r2;
  char buf[2][1001];

  memset(buf,'*',sizeof(buf));
  for(i=0;i<len;i++)
    if((i % 2)==0)
      buf[0][i+1] = s[i];
    else
      buf[1][i] = s[i];
  if((len % 2)==0)
    len++;
  buf[0][len]=buf[1][len]='\0';


  //printf("%s\n",&buf[0][0]);
  //printf("%s\n",&buf[1][0]);

  r1=strcmp_wild(&buf[0][0],t) ;
  r2=strcmp_wild(&buf[1][0],t);
 
  //printf("r1,r2=%d %d\n",r1,r2);
 
  return(r1||r2);
}


int main()
{
  int ret;
  
  scanf("%s",s);
  scanf("%s",t);
  ret=solve(s,t);
  //ret=strcmp_wild(s,t);
  printf("%s\n",ret?"Yes":"No");
  return(0);
}