// Original CPU teaching model; not a device simulator or benchmark.
#include <iostream>
#include <algorithm>
#include <stdexcept>

void require(bool ok) { if (!ok) throw std::runtime_error("model check failed"); }

int main() {
 const int producer_end=2+3;
 const int consumer_end=std::max(0,producer_end)+1;
 require(consumer_end==6);
 std::cout<<"producer_end="<<producer_end<<" consumer_end="<<consumer_end<<'\n';
}

