Problem:
Score : 200 points

Problem Statement

You are given three strings A, B and C. Each of these is a string of length N consisting of lowercase English letters.

Our objective is to make all these three strings equal. For that, you can repeatedly perform the following operation:

Operation: Choose one of the strings A, B and C, and specify an integer i between 1 and N (inclusive). Change the i-th character from the beginning of the chosen string to some other lowercase English letter.

What is the minimum number of operations required to achieve the objective?

Constraints

1 \leq N \leq 100

Each of the strings A, B and C is a string of length N.

Each character in each of the strings A, B and C is a lowercase English letter.

Input

Input is given from Standard Input in the following format:

N
A
B
C

Output

Print the minimum number of operations required.

Sample Input 1

4
west
east
wait

Sample Output 1

3

In this sample, initially A = west、B = east、C = wait. We can achieve the objective in the minimum number of operations by performing three operations as follows:

Change the second character in A to a. A is now wast.

Change the first character in B to w. B is now wast.

Change the third character in C to s. C is now wast.

Sample Input 2

9
different
different
different

Sample Output 2

0

If A, B and C are already equal in the beginning, the number of operations required is 0.

Sample Input 3

7
zenkoku
touitsu
program

Sample Output 3

13

Solution in C (GCC 5.4.1) (judge verdict: Accepted)

#include <stdio.h>

int main(void)
{
	int N,i,f,g,best,point=0;
	
	char moji[100]={0};
	int count[100]={0};
	int flag;
	
	scanf("%d",&N);
	
	char M[100][100];
	
	for(i=0;i<3;i++){
	scanf("%s",&M[i]);
	}
	
	/*
	for(i=0;i<3;i++){
	printf("%c\n",M[i][3]);
	}
	*/
	
	for(i=0;i<N;i++){//N文字を１文字ずつ
		char moji[100]={0};
			int count[100]={0};
		for(f=0;f<3;f++){//何段目
			//探索M[i][f]について
			//printf("%c\n",M[f][i]);
			
			for(g=0;g<N;g++){//gはmojiとcountの番号
				
				if(moji[g]==0){
					moji[g]=M[f][i];
					count[g]=1;
					break;
				}else if(moji[g]==M[f][i]){
					count[g]+=1;
					break;
				}
			}
			
		}
		//１文字目を整理し終わった
		best=0;
		for(f=0;f<100;f++){
			if(count[best]<=count[f])best=f;
		}
		//printf("kosuu %d\n",count[best]);
		//printf("point %d\n",3-count[best]);
		point+=3-count[best];
			for(f=0;f<10;f++){
			//printf("%c",moji[i]);
			}
			//printf("\n");
			for(f=0;f<10;f++){
			//printf("%d",count[i]);
			}
			//printf("\n");
	}
	
	printf("%d",point);
}