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)
}