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 C (GCC 5.4.1) (judge verdict: Accepted)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int comp(const void * a, const void * b){
  return (*(int *)b) - (*(int *)a);
}
int main(){
	char *a = malloc(200001 * sizeof(char));
	int *sla = malloc(200000 * sizeof(int));
    int streak = 0, var = 0, counter = 0;
	scanf("%s", a);
	for (int i = 0; i < strlen(a); ++i){
		if ((a[i] == 'A') && (streak == 0)) streak = 1;
		if(streak == 1) ++counter;
		if ((a[i] == 'Z') && (streak == 1)){;
            sla[var] = counter;
            ++var;
		}
	}
	qsort(sla,var + 1,sizeof(sla[0]),comp);
    printf("%d\n", sla[0]);
    free(a);
    free(sla);
	return 0;
}