#include <bits/stdc++.h>
using namespace std;
const signed int inf = (signed)((1u << 31) - 1);
const signed long long llf = (signed long long)((1ull << 61) - 1);
const double eps = 1e-6;
const int binary_limit = 128;
template <typename T>
inline bool readInteger(T& u) {
  char x;
  int aFlag = 1;
  while (!isdigit((x = getchar())) && x != '-' && x != -1)
    ;
  if (x == -1) {
    ungetc(x, stdin);
    return false;
  }
  if (x == '-') {
    x = getchar();
    aFlag = -1;
  }
  for (u = x - '0'; isdigit((x = getchar())); u = (u << 1) + (u << 3) + x - '0')
    ;
  ungetc(x, stdin);
  u *= aFlag;
  return true;
}
int n;
char a[1005];
char b[1005];
map<char, char> ctc;
const char utl = 'a' - 'A';
inline void init() {
  gets(a);
  gets(b);
  for (int i = 0; a[i]; i++) {
    ctc[a[i]] = b[i];
    ctc[a[i] - utl] = b[i] - utl;
  }
}
inline void solve() {
  gets(a);
  for (int i = 0; a[i]; i++) {
    if ((a[i] >= 'a' && a[i] <= 'z') || (a[i] >= 'A' && a[i] <= 'Z')) {
      putchar(ctc[a[i]]);
    } else {
      putchar(a[i]);
    }
  }
}
int main() {
  init();
  solve();
  return 0;
}
