#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  vector<pair<int, int> > f(n);
  vector<int> b(m);
  vector<int> array(1000005, 0);
  for (int i = 0; i < n; i++) {
    int temp;
    scanf("%d", &temp);
    array[temp]++;
    f.push_back(make_pair(temp, i));
  }
  int ambuiguity = 0;
  int impossible = 0;
  sort(f.begin(), f.end());
  vector<int> ans;
  for (int i = 0; i < m; i++) {
    int temp;
    scanf("%d", &temp);
    vector<pair<int, int> >::iterator it =
        upper_bound(f.begin(), f.end(), make_pair(temp, -1));
    if (it == f.end()) {
      impossible = 1;
      break;
    }
    if (it->first == temp) {
      if (array[temp] > 1) {
        ambuiguity = 1;
      } else {
        ans.push_back(it->second + 1);
      }
    } else {
      impossible = 1;
      break;
    }
  }
  if (impossible == 1) {
    cout << "Impossible" << endl;
  } else if (ambuiguity == 1) {
    cout << "Ambiguity" << endl;
  } else {
    cout << "Possible" << endl;
    for (int i = 0; i < ans.size() - 1; i++) {
      printf("%d ", ans[i]);
    }
    cout << ans[ans.size() - 1] << endl;
  }
  return 0;
}
