main=do
  s<-getLine
  putStr $ if eval s then makeAns.solve$s else "-1"

eval s
  | head s == '1' && r == '0' = go s rs
  | otherwise = False
  where
  (r:rs) = reverse s
  go [] _ = True
  go _ [] = True
  go (c:s) (r:rs) = c == r && go s rs

makeAns = unlines.map (unwords.(\(a,b)->[show a,show b]))

solve = go 1 []
  where
  go cur toConnect ['0'] = zip (repeat cur) toConnect
  go cur toConnect ('0':s) = go (cur+1) (cur:toConnect) s
  go cur toConnect ('1':s) = edges ++ go (cur+1) [cur] s
    where edges = zip (repeat cur) toConnect