Problem:
Score : 200 points

Problem Statement

You are given a string S of length N consisting of lowercase English letters.
We will cut this string at one position into two strings X and Y.
Here, we would like to maximize the number of different letters contained in both X and Y.
Find the largest possible number of different letters contained in both X and Y when we cut the string at the optimal position.

Constraints

2 \leq N \leq 100

|S| = N

S consists of lowercase English letters.

Input

Input is given from Standard Input in the following format:

N
S

Output

Print the largest possible number of different letters contained in both X and Y.

Sample Input 1

6
aabbca

Sample Output 1

2

If we cut the string between the third and fourth letters into X = aab and Y = bca, the letters contained in both X and Y are a and b.
There will never be three or more different letters contained in both X and Y, so the answer is 2.

Sample Input 2

10
aaaaaaaaaa

Sample Output 2

1

However we divide S, only a will be contained in both X and Y.

Sample Input 3

45
tgxgdqkyjzhyputjjtllptdfxocrylqfqjynmfbfucbir

Sample Output 3

9

Solution in Fortran (GNU Fortran 9.2.1) (judge verdict: Accepted)

program sample
    implicit none
    character(1000)::s
    integer(8) :: i,j,m,n,a,b,x(26),y(26)
    
    read(*,*) n
    
    read(*,*)s
    x(:)=0
    y(:)=0

    do i=1,n
        call alfnumber(s(i:i),a)
        y(a)=y(a)+1
    end do
    m=0

    do i=1,n
        call alfnumber(s(i:i),a)
        y(a)=y(a)-1
        x(a)=x(a)+1
        b=0
        do j=1,26
            if(x(j)*y(j)>0)then
                b=b+1
            end if
        end do
        if (b>m)then
            m=b
        end if
    end do
    write(*,*) m
  
    stop
    contains
    subroutine alfnumber(st,a)
        implicit none
        character,intent(in) :: st
        integer(8),intent(out) ::  a
        integer::i
        character(1)::ch(26)
        ch=(/'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'/)
        do i=1,26
            if(st .eq. ch(i))then
                a=i
                return
            end if
        end do 
        end subroutine alfnumber
end program sample