import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class Main { public static final int SIZE = 14; public static void main(String[] args){ Scanner sc = new Scanner(System.in); final int D = sc.nextInt(); boolean[] days = new boolean[SIZE]; for(int i = 0; i < 2; i++){ char[] inputs = sc.next().toCharArray(); for(int j = 0; j < SIZE / 2; j++){ days[i * (SIZE / 2) + j] = inputs[j] == 'o'; } } int max = 0; for(int d = 0; d <= 3 * SIZE - D; d++){ boolean[] new_days = new boolean[3 * SIZE]; System.arraycopy(days, 0, new_days, SIZE, SIZE); for(int i = 0; i < D; i++){ new_days[d + i] = true; } /* for(int i = 0; i < SIZE; i++){ System.out.print(new_days[i] ? "o" : "x"); } System.out.println(); */ int prev = -1; for(int cur = 0; cur < new_days.length; cur++){ if(!new_days[cur] && prev >= 0){ max = Math.max(max, cur - prev); prev = -1; } if(new_days[cur] && prev < 0){ prev = cur; } } if(prev >= 0){ max = Math.max(max, new_days.length - prev); } } System.out.println(max); } }