# gemini-3.5-flash-lite def solve(): import sys input = sys.stdin.read data = input().split() if not data: return N = int(data[0]) S = data[1] # 1-indexed で扱いやすくするために先頭にダミー文字を入れる S = "_" + S left_dist = [float('inf')] * (N + 1) right_dist = [float('inf')] * (N + 1) # 1. 左から走査 last_person = -float('inf') for i in range(1, N + 1): if S[i] == '#': last_person = i left_dist[i] = i - last_person # 2. 右から走査 last_person = float('inf') for i in range(N, 0, -1): if S[i] == '#': last_person = i right_dist[i] = last_person - i # 3 & 4. 各空席について最も近い人までの距離の最大値を求める max_min_dist = -1 best_seat = -1 for i in range(1, N + 1): if S[i] == '.': # 左右の近い方の距離 current_min_dist = min(left_dist[i], right_dist[i]) # 最大値を更新(同点の場合はより左側の席を優先するため、厳密に大きい場合のみ更新) if current_min_dist > max_min_dist: max_min_dist = current_min_dist best_seat = i print(best_seat) if __name__ == '__main__': solve()