//from https://www.jianshu.com/p/c226b37b8e51 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Scanner; public class Solution { static String st; static char[] ch; static char[][] chars; static int[][] pre,crt; static final int INF = (int)1e8,a = (int)'A'; public static void main(String[] args) { chars = new char[6][7000]; initCharArray(); Scanner in = new Scanner(new BufferedReader(new InputStreamReader(System.in))); int tests = 1; for(int test=1;test<=tests;test++){ st = in.next(); st = in.next(); int len = st.length(),id = 0,index = 0; assert len <= 7000; st=st.replace('R','A'); st=st.replace('G','C'); ch = st.toCharArray(); for(int i=1;i=1){ if(ch[i]==chars[j][k-1]){ crt[j][k-1] = Math.min(crt[j][k-1],pre[j][k]); if(k-1==0) { crt[2 * index][0] = Math.min(crt[2 * index][0], pre[j][k]); crt[2 * index + 1][0] = Math.min(crt[2 * index + 1][0], pre[j][k]); } }else{ if(ch[i]==chars[j][k+1]) crt[j][k+1] = Math.min(crt[j][k+1],pre[j][k]+1); if(k>1){ if(ch[i]==chars[j][k-2]) { crt[j][k-2] = Math.min(crt[j][k-2],pre[j][k]); if(k-2==0){ crt[2*index][0] = Math.min(crt[2*index][0],pre[j][k]); crt[2*index+1][0] = Math.min(crt[2*index+1][0],pre[j][k]); } } } } }else{ if(ch[i]==chars[j][k+1]) crt[j][k+1] = Math.min(crt[j][k+1],pre[j][k]+1); } } } } pre = crt; } int ans = Integer.MAX_VALUE,lth = pre[0].length; for(int i=0;i<6;i++){ for(int j=0;j