import
java.io.*;
import
java.util.*;
class
GFG {
public
static
void
main(String[] args)
{
String A =
"nascars"
;
String B =
"geeksforgeeks"
;
Map<Character, Integer> a =
new
HashMap<>();
Map<Character, Integer> b =
new
HashMap<>();
for
(
int
i =
0
; i < A.length(); i++) {
char
c = A.charAt(i);
a.put(c, a.getOrDefault(c,
0
) +
1
);
}
for
(
int
i =
0
; i < B.length(); i++) {
char
c = B.charAt(i);
b.put(c, b.getOrDefault(c,
0
) +
1
);
}
if
(a.size() == b.size()) {
System.out.println(
"YES"
);
}
else
{
boolean
flag =
false
;
for
(
int
i =
0
; i <
26
; i++) {
char
s = (
char
)(
'a'
+ i);
for
(
int
j =
0
; j <
26
; j++) {
char
t = (
char
)(
'a'
+ j);
if
(a.containsKey(s)
&& b.containsKey(t)) {
if
(a.get(s) -
1
==
0
) {
a.remove(s);
}
else
{
a.put(s, a.get(s) -
1
);
}
b.put(s, b.getOrDefault(s,
0
) +
1
);
if
(b.get(t) -
1
==
0
) {
b.remove(t);
}
else
{
b.put(t, b.get(t) -
1
);
}
a.put(t, a.getOrDefault(t,
0
) +
1
);
if
(a.size() == b.size()) {
flag =
true
;
}
if
(a.get(t) -
1
==
0
) {
a.remove(t);
}
else
{
a.put(t, a.get(t) -
1
);
}
b.put(t, b.getOrDefault(t,
0
) +
1
);
if
(b.get(s) -
1
==
0
) {
b.remove(s);
}
else
{
b.put(s, b.get(s) -
1
);
}
a.put(s, a.getOrDefault(s,
0
) +
1
);
}
}
}
if
(flag) {
System.out.println(
"YES"
);
}
else
{
System.out.println(
"NO"
);
}
}
}
}