import Data.Array

main = do
  li <- getLine
  let n = read li
  s <- getLine
  let ans = compute n s
  print ans

{-
'a'から'z'までの個数を数えておく
1文字左に移すたびに、左++右--して、両方>0な要素数を数えて最大値をとる
左はカウントアップする必要がなかった
-}

compute :: Int -> String -> Int
compute n s = maximum $ map comCnt $ scanl step (l0,r0) s
  where
    l0 = listArray ('a','z') $ replicate 26 False
    r0 = accumArray (+) 0 ('a','z') [ (c,1) | c <- s ]
    step (la,ra) c = (accum (||) la [(c,True)], accum (+) ra [(c,-1)])
    comCnt (la,ra) = length [ () | i <- ['a'..'z'], la ! i, ra ! i > 0 ]
