import Control.Applicative
import Control.Monad
import Data.List
import Data.Maybe

calc :: String -> Int
calc s = minimum $ map fst $ concatMap (\ (dis,str) -> mapMaybe (diffstr "problem" dis) $ tails str ) $ mapMaybe (diffstr "good" 0) $ tails s
  where
    diffstr :: String -> Int -> String -> Maybe (Int,String)
    diffstr "" distance srcstr = Just (distance,srcstr)
    diffstr _  _        ""     = Nothing
    diffstr targetstr@(x:xs) distance srcstr@(y:ys)
      | x == y    = diffstr xs distance ys
      | otherwise = diffstr xs (distance+1) ys

main = do
  _:sl <- lines <$> getContents
  mapM_ (print . calc) sl