#include <bits/stdc++.h>
using namespace std;
int n, m, i, j, k, l, a[1000009], b[1000009], f[1000009], ans, cn, t, x, y, z,
    mx, mn, s;
char c[1000009], d[1000009], ch;
map<int, int> mp, mm;
int main() {
  while (scanf("%d %d", &n, &m) != EOF) {
    ans = 1;
    mp.clear();
    mm.clear();
    for (i = 1; i <= n; i++) {
      scanf("%d", &f[i]);
      mm[f[i]] = 1;
    }
    for (i = 1; i <= m; i++) {
      scanf("%d", &b[i]);
      if (mm[b[i]] == 0) {
        ans = 0;
      }
    }
    if (ans == 0) {
      printf("Impossible\n");
    } else {
      ans = 1;
      mp.clear();
      mm.clear();
      for (i = 1; i <= m; i++) {
        mp[b[i]] = 1;
      }
      for (i = 1; i <= n; i++) {
        if (mp[f[i]] == 1) {
          mm[f[i]]++;
          if (mm[f[i]] == 2) {
            ans = 0;
            break;
          }
        }
      }
      if (ans == 0) {
        printf("Ambiguity\n");
      } else {
        printf("Possible\n");
        mp.clear();
        for (i = 1; i <= n; i++) {
          mp[f[i]] = i;
        }
        for (i = 1; i <= m; i++) {
          a[i] = mp[b[i]];
          if (i > 1) {
            printf(" ");
          }
          printf("%d", a[i]);
        }
        printf("\n");
      }
    }
  }
  return 0;
}
