#include <bits/stdc++.h>
using namespace std;
int main() {
  unsigned long long L, R, k;
  while (scanf("%I64d %I64d %I64d", &L, &R, &k) != EOF) {
    if (L > R) swap(L, R);
    int ans = 0;
    unsigned long long x = 1;
    if (L == 1) {
      printf("1");
      ans = 1;
    }
    for (int i = 1; x <= R; i++) {
      if (R / x < k) break;
      x *= k;
      if (x >= L && x <= R) {
        if (!ans) {
          printf("%I64d", x);
          ans = 1;
        } else
          printf(" %I64d", x);
      }
    }
    if (!ans) printf("-1");
    printf("\n");
  }
  return 0;
}
