var
boo, i : integer;
k, j : char;
a, b : string;
r1,r2 : array['A'..'Z'] of integer;
begin
readln(a);
readln(b);
fillchar(r1, sizeof(r1), 0);
fillchar(r2, sizeof(r2), 0);
for i := 1 to length(a) do
begin
inc(r1[a[i]]);
inc(r2[b[i]]);
end;
for k := 'A' to 'Z' do
if r1[k] <> 0 then
for j := 'A' to 'Z' do
if r2[j] = r1[k] then
begin
r2[j] := 0;
r1[k] := 0;
break;
end;
boo := 1;
for k := 'A' to 'Z' do
begin
if (r1[k] <> 0) or (r2[k] <> 0)
then boo := 0;
end;
if boo = 0 then writeln('NO')
else writeln('YES');
end.
var
boo, i : integer;
k, j : char;
a, b : string;
r1,r2 : array['A'..'Z'] of integer;
begin
readln(a);
readln(b);
fillchar(r1, sizeof(r1), 0);
fillchar(r2, sizeof(r2), 0);
for i := 1 to length(a) do
begin
inc(r1[a[i]]);
inc(r2[b[i]]);
end;
for k := 'A' to 'Z' do
if r1[k] <> 0 then
for j := 'A' to 'Z' do
if r2[j] = r1[k] then
begin
r2[j] := 0;
r1[k] := 0;
break;
end;
boo := 1;
for k := 'A' to 'Z' do
begin
if (r1[k] <> 0) or (r2[k] <> 0)
then boo := 0;
end;
if boo = 0 then writeln('NO')
else writeln('YES');
end.