# きりみんちゃんの配信からきました

# 登場回数が同一ならいけそうなのでそうする

s, t = eval(input()), eval(input())

sd, td = {}, {}

for sv in s:

    if sv in sd:

        sd[sv] += 1

    else:

        sd[sv] = 1

for tv in t:

    if tv in td:

        td[tv] += 1

    else:

        td[tv] = 1

sort_sk, sort_tk = sorted(sd.values()), sorted(td.values())

print(("Yes" if sort_sk == sort_tk else "No"))
# chokudaiをredcorderにするのはなんとなくできそうなきがするがなんでできないのだろうか

# c->r, r->c = rhokudai

# i->r, r->I = ihokudar

# たしかに出来なかった

# つまり目的の文字にできるのはせいぜい1回まで

# （2回目以降はそれより前に変化させた文字に影響が出る）

# なので、各文字の登場回数を出し、その数だけで比較する

s, t = list(eval(input())), list(eval(input()))

sd, td = {}, {}

for sv in s:

    if sv not in sd:

        sd[sv] = 1

    else:

        sd[sv] += 1

for tv in t:

    if tv not in td:

        td[tv] = 1

    else:

        td[tv] += 1

ss, ts = sorted(sd.values()), sorted(td.values())

if ss == ts:

    print("Yes")

else:

    print("No")

# きりみんちゃんの配信からきました
# 登場回数が同一ならいけそうなのでそうする
s, t = eval(input()), eval(input())
sd, td = {}, {}
for sv in s:
    if sv in sd:
        sd[sv] += 1
    else:
        sd[sv] = 1
for tv in t:
    if tv in td:
        td[tv] += 1
    else:
        td[tv] = 1
sort_sk, sort_tk = sorted(sd.values()), sorted(td.values())
print(("Yes" if sort_sk == sort_tk else "No"))

# chokudaiをredcorderにするのはなんとなくできそうなきがするがなんでできないのだろうか
# c->r, r->c = rhokudai
# i->r, r->I = ihokudar
# たしかに出来なかった
# つまり目的の文字にできるのはせいぜい1回まで
# （2回目以降はそれより前に変化させた文字に影響が出る）
# なので、各文字の登場回数を出し、その数だけで比較する
s, t = list(eval(input())), list(eval(input()))
sd, td = {}, {}
for sv in s:
    if sv not in sd:
        sd[sv] = 1
    else:
        sd[sv] += 1
for tv in t:
    if tv not in td:
        td[tv] = 1
    else:
        td[tv] += 1
ss, ts = sorted(sd.values()), sorted(td.values())
if ss == ts:
    print("Yes")
else:
    print("No")

-# きりみんちゃんの配信からきました -# 登場回数が同一ならいけそうなのでそうする -s, t = eval(input()), eval(input()) +# chokudaiをredcorderにするのはなんとなくできそうなきがするがなんでできないのだろうか +# c->r, r->c = rhokudai +# i->r, r->I = ihokudar +# たしかに出来なかった +# つまり目的の文字にできるのはせいぜい1回まで +# （2回目以降はそれより前に変化させた文字に影響が出る） +# なので、各文字の登場回数を出し、その数だけで比較する +s, t = list(eval(input())), list(eval(input())) -    if sv in sd: +    if sv not in sd: +        sd[sv] = 1 +    else: +for tv in t: +    if tv not in td: +        td[tv] = 1 -        sd[sv] = 1 -for tv in t: -    if tv in td: -    else: -        td[tv] = 1 -sort_sk, sort_tk = sorted(sd.values()), sorted(td.values()) -print(("Yes" if sort_sk == sort_tk else "No")) +ss, ts = sorted(sd.values()), sorted(td.values()) +if ss == ts: +    print("Yes") +else: +    print("No")