#include <cstdio>
#include <string.h>
using namespace std;
char s[100005];
int j=0;
int calc(int a){
int count1=0, temp=0;
for(int i=0; i<j; i++){
if(s[i]=='P'){
count1++;
}
if(count1==a){
count1=0;
temp=i;
break;
}
}
for(int i=temp+1; i<j;i++){
if(s[i]=='A'){
count1++;
}
if(count1==a){
count1=0;
temp=i;
break;
}
}
for(int i=temp+1; i<j;i++){
if(s[i]=='N'){
count1++;
}
if(count1==a){
count1=0;
temp=i;
break;
}
}
for(int i=temp+1; i<j;i++){
if(s[i]=='D'){
count1++;
}
if(count1==a){
count1=0;
temp=i;
break;
}
}
for(int i=temp+1; i<j;i++){
if(s[i]=='A'){
count1++;
}
if(count1==a){
return 1;
}
}
return 0;
}
int main(){
int count=0;
// while (true){
// scanf("%c", &s[j]);
// if(s[j]=='P') count++;
// if(s[j]=='\n' || s[j]==EOF) break;
// j++;
// }
// j++;
scanf("%s", s);
j=strlen(s);
for(int i=0; i<j; i++){
if(s[i] == 'P') {
count++;
}
}
int bawah=0;
int atas = count+1;
while(atas-1>bawah){
int mid = (atas+bawah)/2;
if(calc(mid)==1){
bawah = mid;
}
else{
atas = mid;
}
}
printf("%d\n", bawah);
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHN0cmluZy5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwpjaGFyIHNbMTAwMDA1XTsKaW50IGo9MDsKIAppbnQgY2FsYyhpbnQgYSl7CQoJaW50IGNvdW50MT0wLCB0ZW1wPTA7Cglmb3IoaW50IGk9MDsgaTxqOyBpKyspewoJCWlmKHNbaV09PSdQJyl7CgkJCWNvdW50MSsrOwoJCX0KCQlpZihjb3VudDE9PWEpewoJCQljb3VudDE9MDsKCQkJdGVtcD1pOwoJCQlicmVhazsKCQl9Cgl9Cglmb3IoaW50IGk9dGVtcCsxOyBpPGo7aSsrKXsKCQlpZihzW2ldPT0nQScpewoJCQljb3VudDErKzsKCQl9CgkJaWYoY291bnQxPT1hKXsKCQkJY291bnQxPTA7CgkJCXRlbXA9aTsKCQkJYnJlYWs7CgkJfQoJfQoJZm9yKGludCBpPXRlbXArMTsgaTxqO2krKyl7CgkJaWYoc1tpXT09J04nKXsKCQkJY291bnQxKys7CgkJfQoJCWlmKGNvdW50MT09YSl7CgkJCWNvdW50MT0wOwoJCQl0ZW1wPWk7CgkJCWJyZWFrOwoJCX0KCX0KCWZvcihpbnQgaT10ZW1wKzE7IGk8ajtpKyspewoJCWlmKHNbaV09PSdEJyl7CgkJCWNvdW50MSsrOwoJCX0KCQlpZihjb3VudDE9PWEpewoJCQljb3VudDE9MDsKCQkJdGVtcD1pOwoJCQlicmVhazsKCQl9Cgl9Cglmb3IoaW50IGk9dGVtcCsxOyBpPGo7aSsrKXsKCQlpZihzW2ldPT0nQScpewoJCQljb3VudDErKzsKCQl9CgkJaWYoY291bnQxPT1hKXsKCQkJcmV0dXJuIDE7CgkJfQoJfQoJcmV0dXJuIDA7Cn0KaW50IG1haW4oKXsKIAoJaW50IGNvdW50PTA7CgkvLyB3aGlsZSAodHJ1ZSl7CgkvLyAJc2NhbmYoIiVjIiwgJnNbal0pOwoJLy8gCWlmKHNbal09PSdQJykgY291bnQrKzsKCS8vIAlpZihzW2pdPT0nXG4nIHx8IHNbal09PUVPRikgYnJlYWs7CgkvLyAJaisrOwoJLy8gfQoJLy8gaisrOwoJc2NhbmYoIiVzIiwgcyk7CglqPXN0cmxlbihzKTsKCWZvcihpbnQgaT0wOyBpPGo7IGkrKyl7CgkJaWYoc1tpXSA9PSAnUCcpIHsKCQkJY291bnQrKzsgCgkJfQoJfQoJaW50IGJhd2FoPTA7CglpbnQgYXRhcyA9IGNvdW50KzE7Cgl3aGlsZShhdGFzLTE+YmF3YWgpewoJCWludCBtaWQgPSAoYXRhcytiYXdhaCkvMjsKCQlpZihjYWxjKG1pZCk9PTEpewoJCQliYXdhaCA9IG1pZDsKCQl9CgkJZWxzZXsKCQkJYXRhcyA9IG1pZDsKCQl9Cgl9CglwcmludGYoIiVkXG4iLCBiYXdhaCk7Cn0gIA==