import
java.io.*;
import
java.util.*;
class
GFG {
static
boolean
match(String S, String T,
char
[][] replace)
{
Map<Character, Set<Character> > unmap
=
new
HashMap<>();
int
m = S.length(), n = T.length();
for
(
char
[] c : replace) {
if
(!unmap.containsKey(c[
0
])) {
unmap.put(c[
0
],
new
HashSet<>());
}
unmap.get(c[
0
]).add(c[
1
]);
}
for
(
int
i =
0
; i < m - n +
1
; i++) {
boolean
flag =
true
;
for
(
int
j =
0
; j < n; j++)
{
if
(S.charAt(i + j) != T.charAt(j))
{
if
(unmap.containsKey(T.charAt(j))
&& unmap.get(T.charAt(j))
.contains(S.charAt(i + j))) {
continue
;
}
else
{
flag =
false
;
break
;
}
}
}
if
(flag)
return
true
;
}
return
false
;
}
public
static
void
main(String[] args)
{
String S =
"hoog3e7bar"
, T =
"geek"
;
char
[][] replace
= { {
'e'
,
'3'
}, {
't'
,
'7'
}, {
'k'
,
'7'
} };
boolean
result = match(S, T, replace);
if
(result) {
System.out.println(
"YES"
);
}
else
{
System.out.println(
"NO"
);
}
}
}