#include <bits/stdc++.h>
int a[1000000];
int b[1000000];
int seg_n;
int seg[1 << 21];
void init(int n) {
  seg_n = 1;
  while (seg_n < n) seg_n *= 2;
  for (int i = 0; i < seg_n * 2 - 1; i++) seg[i] = 0;
}
void add(int i) {
  i += seg_n - 1;
  seg[i]++;
  while (i > 0) {
    i = (i - 1) / 2;
    seg[i]++;
  }
}
void remove(int r, int k = 0) {
  if (k >= seg_n - 1) {
    seg[k]--;
    return;
  }
  if (r <= seg[k * 2 + 1])
    remove(r, k * 2 + 1);
  else
    remove(r - seg[k * 2 + 1], k * 2 + 2);
  seg[k]--;
}
int get(int i) { return seg[i + (seg_n - 1)]; }
int main() {
  int n, m, i, j;
  scanf("%d %d", &n, &m);
  for (i = 0; i < m; i++) scanf("%d", &a[i]);
  init(n);
  int c = 0, k = 0;
  for (i = 0; i < n; i++) {
    int t;
    scanf("%d", &t);
    if (t == -1) {
      for (j = 0; a[j] <= c && j < m; j++) remove(a[j] - j);
      c -= j;
    } else {
      b[k] = t;
      add(k);
      c++;
      k++;
    }
  }
  bool f = false;
  for (i = 0; i < k; i++)
    if (get(i) > 0) {
      f = true;
      printf("%d", b[i]);
    }
  if (!f) printf("Poor stack!");
  puts("");
  return 0;
}
