#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long powmod(long long a, long long b) {
  long long res = 1;
  a %= mod;
  assert(b >= 0);
  for (; b; b >>= 1) {
    if (b & 1) res = res * a % mod;
    a = a * a % mod;
  }
  return res;
}
const int inf = 0x3f3f3f3f;
char fir[30];
char sec[30];
char a[1010];
char b[1010];
int getInd(char ch) {
  for (int i = 0; i < 26; i++) {
    if (fir[i] == ch) {
      return i;
    }
  }
  return 30;
}
char getU(char ch) {
  switch (ch) {
    case 'a':
      return 'A';
    case 'b':
      return 'B';
    case 'c':
      return 'C';
    case 'd':
      return 'D';
    case 'e':
      return 'E';
    case 'f':
      return 'F';
    case 'g':
      return 'G';
    case 'h':
      return 'H';
    case 'i':
      return 'I';
    case 'j':
      return 'J';
    case 'k':
      return 'K';
    case 'l':
      return 'L';
    case 'm':
      return 'M';
    case 'n':
      return 'N';
    case 'o':
      return 'O';
    case 'p':
      return 'P';
    case 'q':
      return 'Q';
    case 'r':
      return 'R';
    case 's':
      return 'S';
    case 't':
      return 'T';
    case 'u':
      return 'U';
    case 'v':
      return 'V';
    case 'w':
      return 'W';
    case 'x':
      return 'X';
    case 'y':
      return 'Y';
    case 'z':
      return 'Z';
  }
}
int main() {
  scanf("%s %s %s", fir, sec, a);
  memset(b, '\0', sizeof(b));
  int len = strlen(a);
  for (int i = 0; i < len; i++) {
    if (isdigit(a[i])) {
      b[i] = a[i];
      continue;
    }
    bool flag = false;
    if (isupper(a[i])) {
      flag = true;
    }
    int ind;
    if (flag) {
      ind = getInd(a[i] + 32);
    } else {
      ind = getInd(a[i]);
    }
    b[i] = sec[ind];
    if (flag) {
      b[i] -= 32;
    }
  }
  for (int i = 0; i < strlen(b); i++) {
    printf("%c", b[i]);
  }
}
