#include <iostream>
using namespace std;

int A, B;
double W;

int isin(double N) {
    if(N >= A and N <= B) {
        return true;
    } else {
        return false;
    }
}

int main() {
    cin >> A >> B >> W;
    int max = 0;
    int min = 0;
    for (int i = 1; i <= W * 1000; i++) {
        double pre = W * 1000 / i;

        if(isin(pre)) {
            min = i;
            break;
        }
    }

    for (int i = W * 1000; i > 0; i--) {
        double pre = W * 1000 / i;

        if(isin(pre)) {
            max = i;
            break;
        }
    }

    if (min == 0) {
        min = max;
    }
    if (max == 0) {
        max = min;
    }

    if (min == 0 and max == 0) {
        cout << "UNSATISFIABLE" << endl;
    } else {
        cout << min << " " << max << endl;
    }
}
#include<set>
#include<queue>
#include<cmath>
#include<vector>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
#define MAXN (1<<18|5)
#define ENDL putchar('\n')
#define LL long long
#define DB double
#define lowbit(x) ((-x) & (x))
LL read() {
	LL f = 1,x = 0;char s = getchar();
	while(s < '0' || s > '9') {if(s=='-')f = -f;s = getchar();}
	while(s >= '0' && s <= '9') {x=x*10+(s-'0');s = getchar();}
	return f * x;
}
int n,m,i,j,s,o,k;
int main() {
	s = read();o = read();k = read()*1000;
	int l = (k+o-1)/o,r = k / s;
	if(l > r) printf("UNSATISFIABLE\n");
	else printf("%d %d\n",l,r);
	return 0;
}