#include <bits/stdc++.h>
typedef struct {
  char a[100], b[100], c[100];
} word1;
word1 str1[3000];
typedef struct {
  char a[100];
  int n;
} word2;
word2 str2[3000];
int main() {
  int n, m, i, j, len;
  scanf("%d%d", &n, &m);
  for (i = 0; i < m; i++) {
    scanf("%s%s", str1[i].a, str1[i].b);
    len = strlen(str1[i].a);
    if (len <= strlen(str1[i].b))
      strcpy(str1[i].c, str1[i].a);
    else
      strcpy(str1[i].c, str1[i].b);
  }
  for (i = 0; i < n; i++) {
    scanf("%s", str2[i].a);
    for (j = 0; j < m; j++)
      if (!strcmp(str1[j].a, str2[i].a)) str2[i].n = j;
  }
  for (i = 0; i < n; i++) {
    if (i == n - 1)
      printf("%s\n", str1[str2[i].n].c);
    else
      printf("%s ", str1[str2[i].n].c);
  }
  return 0;
}
