#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
char s[N];
int n,tot,p[N],pre[N],cnt,d[N],f[N];
inline bool empty(int l,int r){return l>r||pre[l-1]==pre[r];}
inline bool check(int t){
f[0]=0;
for(int i=1;i<=tot;++i){
int x=p[i];
f[i]=0;
if(empty(f[i-1]+1,x-1)) f[i]=max(f[i],x+t);
if(empty(f[i-1]+1,x-t-1)) f[i]=max(f[i],x);
if(i>1&&empty(f[i-2]+1,x-t-1)) f[i]=max(f[i],p[i-1]+t);
}
return f[tot]>=d[cnt];
}
int main(){
scanf("%d",&n);
scanf("%s",s+1);
for(int i=1;i<=n;++i){
if(s[i]=='*') pre[i]=pre[i-1]+1,d[++cnt]=i;
else pre[i]=pre[i-1];
if(s[i]=='P') p[++tot]=i;
}
if(!tot){puts("0 0");return 0;}
if(tot==1){
int x=p[1];
if(pre[x]>cnt-pre[x]) printf("%d %d\n",pre[x],x-d[1]);
else if(pre[x]<cnt-pre[x]) printf("%d %d\n",cnt-pre[x],d[cnt]-x);
else printf("%d %d\n",pre[x],min(x-d[1],d[cnt]-x));
return 0;
}
int l=0,r=n,ans=0;
while(l<=r){
int mid=(l+r)>>1;
if(check(mid)) ans=mid,r=mid-1;
else l=mid+1;
}
printf("%d %d\n",cnt,ans);
return 0;
}