#include <bits/stdc++.h>
using namespace std;
int powpow[1000 + 200][200];
int a, b, n;
void Build_tenpow() {
  for (int i = 1; i <= 1000; i++) {
    powpow[i][0] = 1;
    for (int j = 1; j <= 10; j++) {
      powpow[i][j] = powpow[i][j - 1] * i;
      if (powpow[i][j] > 1000) break;
    }
  }
}
int main() {
  Build_tenpow();
  int ans;
  while (~scanf("%d %d %d", &a, &b, &n)) {
    if (a == b) {
      printf("%d\n", 1);
      continue;
    } else if (a == -b) {
      if (n % 2)
        printf("%d\n", -1);
      else
        printf("No solution\n");
      continue;
    }
    if (a && !b) {
      printf("0\n");
      continue;
    } else if (!a && b) {
      printf("No solution\n");
      continue;
    }
    ans = (0x3f3f3f3f) * 2;
    int t;
    if (a * b > 0) {
      for (int i = 2; i <= 1000; i++) {
        t = a * powpow[i][n];
        if (t == b) {
          ans = i;
          break;
        }
      }
    } else {
      if (n % 2 == 0) {
        printf("No solution\n");
        continue;
      }
      for (int i = 2; i <= 1000; i++) {
        t = a * powpow[i][n];
        if (-t == b) {
          ans = -i;
          break;
        }
      }
    }
    if (ans != (0x3f3f3f3f) * 2)
      printf("%d\n", ans);
    else
      printf("No solution\n");
  }
}
