// +build OMIT

package main

import (
	"runtime"
	"sync"
)

func main() {
	runtime.GOMAXPROCS(runtime.NumCPU())
	count(10000) // what if we have 1, 2, 25?
}

func count(n int) {
	var wg sync.WaitGroup
	wg.Add(n)
	m := map[int]int{}
	var mu sync.Mutex // HL
	for i := 1; i <= n; i++ {
		go func(i int) {
			for j := 0; j < i; j++ {
				mu.Lock() // HL
				m[i]++
				mu.Unlock() // HL
			}
			wg.Done()
		}(i)
	}
	wg.Wait()
}
