#include <iostream>

#include <amp.h>

#include <vector>


int main()

{

    int m, n;

    std::cout << "Input m , n ";

    std::cin >> m >> n;


    int mn = m*n;

    if(!mn)

        return 0;


    std::vector<int> v(mn, 0);

    ::Concurrency::extent<1> e(mn);

    ::Concurrency::array_view<int, 1> av_data(e, v);

    for(;;)

    {

        int r;

        std::cout << "Input r ";

        std::cin >> r;

        if(!r)

            break;


        ::Concurrency::parallel_for_each(e, [=](::Concurrency::index<1> idx) restrict(amp)

        {

            av_data[idx] += r;

        });

        av_data.synchronize();

    }

    return 0;

}