counting patterns