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 BigInteger start = squareRoot(new BigInteger(numbers[0]), false);
            final BigInteger end = squareRoot(new BigInteger(numbers[1]), true);
            long count = 0;

            for (BigInteger i = start; i.compareTo(end) <= 0; i = i.add(BigInteger.ONE)) {
                if (hasHighDigits(i) || !isAPalindrome(i)) continue;

                if (isAPalindrome(i.pow(2))) count++;
            }

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

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