#include <bits/stdc++.h>
int x[100010], sum, mm;
int main() {
  int n, m, t = 0, k, i, p = 0, c = 0;
  char a[10];
  scanf("%d%d", &n, &m);
  for (k = 1; k <= n + 1; k++) {
    scanf("%s", a);
    if (a[0] == '?') {
      t = 1;
      if (k == 1) p = 1;
      c++;
    } else
      x[k] = atoi(a);
  }
  if (m == 0) {
    if (p == 1) {
      if ((n + 1 - c) & 1) {
        puts("Yes");
      } else
        puts("No");
    } else if (x[1] == 0) {
      puts("Yes");
    } else
      puts("No");
    return 0;
  }
  if (t == 1) {
    if (n % 2 == 1) {
      puts("Yes");
    } else
      puts("No");
  } else {
    if (m == 1) {
      for (k = 1; k <= n + 1; k++) {
        sum += x[k];
      }
    } else if (m == -1) {
      for (k = 1; k <= n + 1; k++) {
        if (k & 1)
          sum += x[k];
        else
          sum -= x[k];
      }
    } else if (m == 0) {
      sum = x[1];
    } else {
      sum = 0;
      for (k = n + 1; k >= 1; k--) {
        sum *= m;
        sum += x[k];
        if (sum > 10000 || sum < -10000) {
          puts("No");
          return 0;
        }
      }
      if (sum == 0)
        puts("Yes");
      else
        puts("No");
      return 0;
    }
    if (sum == 0) {
      puts("Yes");
    } else {
      puts("No");
    }
  }
}
