D = int(input()) C = input().strip() + input().strip() # Generate intervals intervals = [] if not C: intervals = [] else: current_char = C[0] count = 1 for c in C[1:]: if c == current_char: count += 1 else: intervals.append((current_char, count)) current_char = c count = 1 intervals.append((current_char, count)) max_original = 0 for t, l in intervals: if t == 'o': if l > max_original: max_original = l if D == 0: print(max_original) exit() max_val = max_original # Case a: apply before the calendar first_type, first_length = intervals[0] if intervals else ('x', 0) if first_type == 'o': candidate = D + first_length else: candidate = D if candidate > max_val: max_val = candidate # Case b: apply after the calendar last_type, last_length = intervals[-1] if intervals else ('x', 0) if last_type == 'o': candidate = last_length + D else: candidate = D if candidate > max_val: max_val = candidate # Case c: apply to x intervals in the calendar for i in range(len(intervals)): t, l = intervals[i] if t != 'x': continue prev_o = 0 next_o = 0 if i > 0 and intervals[i-1][0] == 'o': prev_o = intervals[i-1][1] if i < len(intervals)-1 and intervals[i+1][0] == 'o': next_o = intervals[i+1][1] k = min(D, l) candidate = prev_o + k + next_o if candidate > max_val: max_val = candidate print(max_val)