r r a b c d e f g h C p b c c p b c p p c c c C C c a b C d e f g h r