#include <stdio.h>
#include <string.h>
#include <algorithm>

int main()
{
	int A, B, W;
	scanf("%d%d%d", &A, &B, &W);
	W *= 1000;

	int ansmin = 0xfffffff;
	int ansmax = -1;
	for (int n = 1; n <= 1000 * 1000; n++) {
		if (A * n <= W && W <= B * n) {
			ansmin = std::min(ansmin, n);
			ansmax = std::max(ansmax, n);
		}
	}

	if (ansmax == -1) {
		puts("UNSATISFIABLE");
	}
	else {
		printf("%d %d\n", ansmin, ansmax);
	}

	return 0;
}

//#define _GLIBCXX_DEBUG
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (long long i = 0; i < (long long)(n); i++)
#define repa(i,a,n) for (long long i = (a); i < (long long)(n); i++)
#define Rrep(i,n) for (long long i = (long long)(n)-1; i >= 0; i--)
#define Rrepa(i,a,n) for (long long i = (long long)(n)-1; i >= a; i--)
using ll = long long;
class Prints {
    class __Prints {
    public:
        __Prints(const char* sep, const char* term) : sep(sep), term(term) {}
        template <class... Args>
        void operator()(const Args&... args) const { print(args...); }
        template <typename T>
        void pvec(const T& vec, size_t sz) const {
            for (size_t i = 0; i < sz; i++)
                std::cout << vec[i] << (i == sz - 1 ? term : sep);
        }
        template <typename T>
        void pmat(const T& mat, size_t h, size_t w) {
            for (size_t i = 0; i < h; i++)
                for (size_t j = 0; j < w; j++)
                    std::cout << mat[i][j] << (j == w - 1 ? term : sep);
        }

    private:
        const char *sep, *term;
        void print() const { std::cout << term; }
        void print_rest() const { std::cout << term; }
        template <class T, class... Tail>
        void print(const T& head, const Tail&... tail) const { std::cout << head, print_rest(tail...); }
        template <class T, class... Tail>
        void print_rest(const T& head, const Tail&... tail) const { std::cout << sep << head, print_rest(tail...); }
    };

public:
    Prints() {}
    __Prints operator()(const char* sep = " ", const char* term = "\n") const { return __Prints(sep, term); }
};
Prints print;
//一次元配列はprint().pvec(vec,要素数);
//二次元配列はprint().pmat(vec,要素数1,要素数2);

int main() {
    string S;
    cin >> S;
    string flg = "Yes";
    rep(i,S.size()){
        if (i % 2 == 0){
            if (S[i] < 'a' or 'z' < S[i]){
                flg = "No";
            }
        }
        else{
            if (S[i] < 'A' or 'Z' < S[i]){
                flg = "No";
            }
        }
        
        //print()(i,flg);
    }
    cout << flg << endl;
}