#include <bits/stdc++.h>
int main() {
  char a[200];
  char b[200];
  char ab[500];
  int arr[500];
  int characount = 0;
  int charbcount = 0;
  int charabcount = 0;
  int count = 0;
  int check = 1;
  int check2 = 0;
  scanf("%s %s %s", a, b, ab);
  for (int i = 0; a[i] != '\0'; i++) {
    characount++;
    check2 = 0;
    for (int j = 0; ab[j] != '\0'; j++) {
      for (int m = 0; m < count; m++) {
        if (j == arr[m]) {
          check = 0;
        }
      }
      if (check == 0) {
        check = 1;
        continue;
      }
      if (a[i] == ab[j]) {
        arr[count] = j;
        count++;
        check2 = 1;
        break;
      }
    }
    if (check2 == 0) {
      break;
    }
  }
  check = 1;
  if (check2 == 1) {
    for (int i = 0; b[i] != '\0'; i++) {
      charbcount++;
      check2 = 0;
      for (int j = 0; ab[j] != '\0'; j++) {
        for (int m = 0; m < count; m++) {
          if (j == arr[m]) {
            check = 0;
          }
        }
        if (check == 0) {
          check = 1;
          continue;
        }
        if (b[i] == ab[j]) {
          arr[count] = j;
          count++;
          check2 = 1;
          break;
        }
      }
      if (check2 == 0) {
        break;
      }
    }
  }
  if (check2 == 1) {
    for (int i = 0; ab[i] != '\0'; i++) {
      charabcount++;
    }
    if ((characount + charbcount) != charabcount) {
      check2 = 0;
    }
  }
  if (check2 == 0) {
    printf("NO\n");
  } else {
    printf("YES\n");
  }
  return 0;
}
