ll@h,@w,a[w]{},b[w],q[w]; string@s[h]; rrep(y,h-1){ ll qr=0,qw=-1; rep(x,w){ if(s[y][x]=='#'){ qr=0,qw=-1; b[x]=w; }else{ while(qr<=qw&&a[q[qw]]>=a[x]){ --qw; } q[++qw]=x; while(qr=a[q[qr+1]]){ ++qr; } b[x]=max(x-q[qr],a[q[qr]]); } } qr=0,qw=-1; rrep(x,w){ if(s[y][x]=='#'){ qr=0,qw=-1; }else{ while(qr<=qw&&a[q[qw]]>=a[x]){ --qw; } q[++qw]=x; while(qr=a[q[qr+1]]){ ++qr; } b[x]