How prices allocate resources