from __future__ import division
import re
from collections import namedtuple
from math import floor,ceil,log10
from sys import stderr,stdin


def gen_test():
    '''Generate tests'''
    num_pattern = re.compile('\s*(\d+)')
    range_pattern = re.compile('(\(\s*\d+\s*,\s*\d+\s*\))')
    res_pattern = re.compile('-> (true|false)')
    test = namedtuple('test', ['num', 'min', 'max', 'res'])
    for line in stdin:
        if not line.strip(): continue
        num = float(num_pattern.match(line).group(1))
        R = eval(range_pattern.search(line).group(1))
        res = eval(res_pattern.search(line).group(1).capitalize())
        yield test(num,R[0],R[1],res)


## Actuall function that carries the algorithm ##
#------------------------------------------------

def check(num,min,max):
    # num*10^n is between min and max
    #-------------------------------
    x = num*10**(ceil(log10(min/num)))
    if x>=min and x<=max: 
        return True

    # if num is prefix substring of min
    #-------------------------------
    magnitude = 10**(floor(log10(min)) - floor(log10(num)))
    if 0 <= (min-num*magnitude)/magnitude < 1:
        return True

    # if num is prefix substring of max
    #-------------------------------
    magnitude = 10**(floor(log10(max)) - floor(log10(num)))
    if 0 <= (max-num*magnitude)/magnitude < 1:
        return True

    return False

#------------------------------------------------


for test in gen_test():
    res = check(test.num,test.min,test.max)
    print('')
    print(test)
    print('check function result: {}'.format(res))
    if res==test.res:
        print('Pass')
    else:
        print('!!!!! FAIL !!!!!')
    