Problem:
Score : 200 points

Problem Statement

Snuke has decided to construct a string that starts with A and ends with Z, by taking out a substring of a string s (that is, a consecutive part of s).

Find the greatest length of the string Snuke can construct. Here, the test set guarantees that there always exists a substring of s that starts with A and ends with Z.

Constraints

1 ≦ |s| ≦ 200{,}000

s consists of uppercase English letters.

There exists a substring of s that starts with A and ends with Z.

Input

The input is given from Standard Input in the following format:

s

Output

Print the answer.

Sample Input 1

QWERTYASDFZXCV

Sample Output 1

5

By taking out the seventh through eleventh characters, it is possible to construct ASDFZ, which starts with A and ends with Z.

Sample Input 2

ZABCZ

Sample Output 2

4

Sample Input 3

HASFJGHOGAKZZFEGA

Sample Output 3

12

Solution in Go (1.6) (judge verdict: Accepted)

package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	var S string
	r := bufio.NewScanner(os.Stdin)
	b := make([]byte, 10000000)
	r.Buffer(b, 10000000)
	r.Scan()
	S = r.Text()

	a := -1
	z := -1
	for i := 0; i < len(S); i++ {
		if S[i:i+1] == "A" && a < 0 {
			a = i
		}
		if S[len(S)-1-i:len(S)-i] == "Z" && z < 0 {
			z = len(S) - 1 - i
		}
	}
	fmt.Println(z - a + 1)
}