public final void operateImpl() throws IOException {
        final Pattern splitter = Pattern.compile(" ");

        String currentLine;
        while ((currentLine = readInputLine()) != null) {
            final String[] numbers = splitter.split(currentLine);

            if (numbers.length != 2) {
                throw new IllegalArgumentException("Invalid number of input parameters : " + numbers.length);
            }

            final long start = (long) Math.ceil(Math.sqrt(Double.parseDouble(numbers[0])));
            final long end = (long) Math.floor(Math.sqrt(Double.parseDouble(numbers[1])));
            long count = 0;

            for (long i = start; i <= end; i++) {
                if (hasHighDigits(i) || !isAPalindrome(i)) continue;

                if (isAPalindrome(i * i)) count++;
            }

            if (testMode) {
                results.add(count);
            }

            emitOutputLine(Long.toString(count));
        }
    }