← Home
package main

import (
	"bufio"
	"fmt"
	"os"
)

func hamming(a, b string) int {
	d := 0
	for i := 0; i < 6; i++ {
		if a[i] != b[i] {
			d++
		}
	}
	return d
}

func main() {
	in := bufio.NewReader(os.Stdin)
	out := bufio.NewWriter(os.Stdout)
	defer out.Flush()

	var n int
	if _, err := fmt.Fscan(in, &n); err != nil {
		return
	}

	codes := make([]string, n)
	for i := 0; i < n; i++ {
		fmt.Fscan(in, &codes[i])
	}

	if n == 1 {
		fmt.Fprintln(out, 6)
		return
	}

	minD := 7
	for i := 0; i < n; i++ {
		for j := i + 1; j < n; j++ {
			d := hamming(codes[i], codes[j])
			if d < minD {
				minD = d
				if minD == 1 {
					// Early exit: can't get less than 1
					break
				}
			}
		}
		if minD == 1 {
			break
		}
	}

	ans := (minD - 1) / 2
	if ans > 6 {
		ans = 6
	}
	fmt.Fprintln(out, ans)
}