#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
int a,b,w,minn = 1e9,maxx = -1e9; 
bool ok = false;
int main()
{
	cin>>a>>b>>w;w*=1000;
	for(int i=1;;i++)
	{
		
		if (a*i<=w && w<=b*i && !ok){
			minn = i;ok = true;
		}
		if (a*i>w && ok){
			maxx = i-1;break;
		}
		if (a*i>1000000)break;
	}
	if (!ok){
		printf("UNSATISFIABLE");return 0;
	}
	
	cout<<minn<<" "<<maxx;
	return 0;
}
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp> 
#include <ext/pb_ds/detail/standard_policies.hpp>
using namespace __gnu_pbds;
using namespace std;
#define getbit(n, i) (((n) & (1LL << (i))) != 0) 
#define setbit0(n, i) ((n) & (~(1LL << (i)))) 
#define setbit1(n, i) ((n) | (1LL << (i))) 
#define togglebit(n, i) ((n) ^ (1LL << (i))) 
#define lastone(n) ((n) & (-(n))) 
char gap = 32;
#define ll long long 
#define lll __int128_t
#define pb push_back
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_set;
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
ll hashPrime = 1610612741;

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    ll i,j,k,l,n,m;
    cin>>n>>m>>l;
    l *= 1000;
    ll mini = 0;
    ll maxi = 0;
    int flag = 0;
    for(i = 1;i<=l;i++){
        long double temp = (long double)((long double)l/(long double)i);
        if(temp>=n and temp<=m){
            if(flag==0){
                flag = 1;
                mini = i;
                maxi = i;
            }
            else{
                mini = min(mini , i);
                maxi = max(maxi , i);
            }
        }
    }
    if(flag==0){
        cout<<"UNSATISFIABLE\n";
    }
    else{
        cout<<mini<<" "<<maxi<<"\n";
    }
    return 0;
}