#include <bits/stdc++.h>
using namespace std;
int n, k;
const int Mod = 13204717;
const int Mod2 = 1e9 + 7;
int a[100050], kw[100050], ccnt, kw2[100050];
char s[100010];
bool vis[100010], flag = false;
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i <= n; i++) {
    scanf("%s", s);
    int len = strlen(s);
    if (s[0] == '?')
      vis[i] = true, flag = true;
    else {
      ccnt++;
      int vvv = 1;
      for (int j = 0; j < len; j++) {
        if (s[j] == '-')
          vvv = -1;
        else
          a[i] = a[i] * 10 + s[j] - '0';
      }
      a[i] *= vvv;
    }
  }
  if (k == 0) {
    if (!vis[0] && a[0] == 0) printf("Yes");
    if (!vis[0] && a[0] != 0) printf("No");
    if (vis[0]) {
      if (ccnt % 2)
        printf("Yes");
      else
        printf("No");
    }
    return 0;
  }
  kw[0] = 1;
  for (int i = 1; i <= n; i++)
    kw[i] = (long long)kw[i - 1] * k % Mod,
    kw2[i] = (long long)kw2[i - 1] * k % Mod2;
  if (flag) {
    if (n % 2)
      printf("Yes");
    else
      printf("No");
    return 0;
  }
  long long now = 0, now2 = 0;
  for (int i = 0; i <= n; i++) {
    now = (now + (long long)a[i] * kw[i] % Mod) % Mod;
    now2 = (now2 + (long long)a[i] * kw2[i] % Mod2) % Mod2;
  }
  if (now == 0 && now2 == 0)
    printf("Yes");
  else
    printf("No");
  return 0;
}
