B.移动(move)
#include<bits/stdc++.h>
using namespace std;
int n,size,a;
long long t;
char c;
int ans;
long long now,step;
bool f=1;
int l[2000001],r[2000001];
int ll,rr;
int nl,nr;
int main() {
freopen("move.in","r",stdin);
freopen("move.out","w",stdout);
cin>>n>>a;
for(int i=1; i<=n; i++) {
cin>>c;
if(c=='#') {
ans++;
if(i<a) {
ll++;
l[ll]=i;
}
if(i>a) {
rr++;
r[rr]=i;
}
}
}
for(int i=1; i<=(rr+1)/2; i++)
swap(r[i],r[rr-i+1]);
while(ans) {
ans--;
if(f) {
if(rr!=0) {
t+=r[rr]-a;
a=r[rr];
f=0;
rr--;
continue;
} else {
ans++;
t+=(n+1-a)*2;
f=0;
continue;
}
} else {
if(ll!=0) {
t+=a-l[ll];
a=l[ll];
f=1;
ll--;
continue;
} else {
ans++;
t+=a*2;
f=1;
continue;
}
}
}
cout<<t;
return 0;
}