#include <bits/stdc++.h>
using namespace std;
const long long MaxN = 2e5 + 5;
long long n, m,i,k;
long long a[MaxN];
long long st[4 * MaxN], lazy[4 * MaxN];
void build(long long id, long long l, long long r)
{
if(l == r)
{
st[id] = a[l];
return;
}
long long mid = (l + r) / 2;
build(id * 2, l, mid);
build(id * 2 + 1, mid + 1, r);
st[id] = st[id * 2] + st[id * 2 + 1];
}
void push(long long id, long long l, long long r)
{
if(lazy[id] == 0)
return;
long long mid = (l + r) / 2;
st[id * 2] += lazy[id] * (mid - l + 1);
st[id * 2 + 1] += lazy[id] * (r - mid);
lazy[id * 2] += lazy[id];
lazy[id * 2 + 1] += lazy[id];
lazy[id] = 0;
}
void update(long long id, long long l, long long r,
long long u, long long v, long long val)
{
if(v < l || r < u)
return;
if(u <= l && r <= v)
{
st[id] += val * (r - l + 1);
lazy[id] += val;
return;
}
push(id, l, r);
long long mid = (l + r) / 2;
update(id * 2, l, mid, u, v, val);
update(id * 2 + 1, mid + 1, r, u, v, val);
st[id] = st[id * 2] + st[id * 2 + 1];
}
long long query(long long id, long long l, long long r,
long long u, long long v)
{
if(v < l || r < u)
return 0;
if(u <= l && r <= v)
return st[id];
push(id, l, r);
long long mid = (l + r) / 2;
return query(id * 2, l, mid, u, v)
+ query(id * 2 + 1, mid + 1, r, u, v);
}
int main()
{
cin >> n >> m;
for (long long i=1; i<=m; i++)
{
cin >> i >> k;
if(k<=n)
{
update(1,1,2*n,i,i+k-1,1);
}
else
{
long long t= k/n;
update(1,1,2*n,i,i+n-1,t);
long long x = k%n;
update(1,1,2*n,i-1,i-1+x-1,1);
}
}
for (long long i=1; i<=n; i++)
{
cout << query(1,1,n,i,i) +query(1,1,n,i+n,i+n) << " ";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBsb25nIGxvbmcgTWF4TiA9IDJlNSArIDU7Cgpsb25nIGxvbmcgbiwgbSxpLGs7CmxvbmcgbG9uZyBhW01heE5dOwpsb25nIGxvbmcgc3RbNCAqIE1heE5dLCBsYXp5WzQgKiBNYXhOXTsKCnZvaWQgYnVpbGQobG9uZyBsb25nIGlkLCBsb25nIGxvbmcgbCwgbG9uZyBsb25nIHIpCnsKICAgIGlmKGwgPT0gcikKICAgIHsKICAgICAgICBzdFtpZF0gPSBhW2xdOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBsb25nIGxvbmcgbWlkID0gKGwgKyByKSAvIDI7CgogICAgYnVpbGQoaWQgKiAyLCBsLCBtaWQpOwogICAgYnVpbGQoaWQgKiAyICsgMSwgbWlkICsgMSwgcik7CgogICAgc3RbaWRdID0gc3RbaWQgKiAyXSArIHN0W2lkICogMiArIDFdOwp9Cgp2b2lkIHB1c2gobG9uZyBsb25nIGlkLCBsb25nIGxvbmcgbCwgbG9uZyBsb25nIHIpCnsKICAgIGlmKGxhenlbaWRdID09IDApCiAgICAgICAgcmV0dXJuOwoKICAgIGxvbmcgbG9uZyBtaWQgPSAobCArIHIpIC8gMjsKCiAgICBzdFtpZCAqIDJdICs9IGxhenlbaWRdICogKG1pZCAtIGwgKyAxKTsKICAgIHN0W2lkICogMiArIDFdICs9IGxhenlbaWRdICogKHIgLSBtaWQpOwoKICAgIGxhenlbaWQgKiAyXSArPSBsYXp5W2lkXTsKICAgIGxhenlbaWQgKiAyICsgMV0gKz0gbGF6eVtpZF07CgogICAgbGF6eVtpZF0gPSAwOwp9Cgp2b2lkIHVwZGF0ZShsb25nIGxvbmcgaWQsIGxvbmcgbG9uZyBsLCBsb25nIGxvbmcgciwKICAgICAgICAgICAgbG9uZyBsb25nIHUsIGxvbmcgbG9uZyB2LCBsb25nIGxvbmcgdmFsKQp7CiAgICBpZih2IDwgbCB8fCByIDwgdSkKICAgICAgICByZXR1cm47CgogICAgaWYodSA8PSBsICYmIHIgPD0gdikKICAgIHsKICAgICAgICBzdFtpZF0gKz0gdmFsICogKHIgLSBsICsgMSk7CiAgICAgICAgbGF6eVtpZF0gKz0gdmFsOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBwdXNoKGlkLCBsLCByKTsKCiAgICBsb25nIGxvbmcgbWlkID0gKGwgKyByKSAvIDI7CgogICAgdXBkYXRlKGlkICogMiwgbCwgbWlkLCB1LCB2LCB2YWwpOwogICAgdXBkYXRlKGlkICogMiArIDEsIG1pZCArIDEsIHIsIHUsIHYsIHZhbCk7CgogICAgc3RbaWRdID0gc3RbaWQgKiAyXSArIHN0W2lkICogMiArIDFdOwp9Cgpsb25nIGxvbmcgcXVlcnkobG9uZyBsb25nIGlkLCBsb25nIGxvbmcgbCwgbG9uZyBsb25nIHIsCiAgICAgICAgICAgICAgICBsb25nIGxvbmcgdSwgbG9uZyBsb25nIHYpCnsKICAgIGlmKHYgPCBsIHx8IHIgPCB1KQogICAgICAgIHJldHVybiAwOwoKICAgIGlmKHUgPD0gbCAmJiByIDw9IHYpCiAgICAgICAgcmV0dXJuIHN0W2lkXTsKCiAgICBwdXNoKGlkLCBsLCByKTsKCiAgICBsb25nIGxvbmcgbWlkID0gKGwgKyByKSAvIDI7CgogICAgcmV0dXJuIHF1ZXJ5KGlkICogMiwgbCwgbWlkLCB1LCB2KQogICAgICAgICArIHF1ZXJ5KGlkICogMiArIDEsIG1pZCArIDEsIHIsIHUsIHYpOwp9CgppbnQgbWFpbigpCnsKICAgIGNpbiA+PiBuID4+IG07CiAgICBmb3IgKGxvbmcgbG9uZyBpPTE7IGk8PW07IGkrKykKICAgIHsKICAgICAgICBjaW4gPj4gaSA+PiBrOwogICAgICAgIGlmKGs8PW4pCiAgICAgICAgewogICAgICAgICAgICB1cGRhdGUoMSwxLDIqbixpLGkray0xLDEpOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBsb25nIGxvbmcgdD0gay9uOwogICAgICAgICAgICB1cGRhdGUoMSwxLDIqbixpLGkrbi0xLHQpOwogICAgICAgICAgICBsb25nIGxvbmcgeCA9IGslbjsKICAgICAgICAgICAgdXBkYXRlKDEsMSwyKm4saS0xLGktMSt4LTEsMSk7CiAgICAgICAgfQogICAgfQogICAgZm9yIChsb25nIGxvbmcgaT0xOyBpPD1uOyBpKyspCiAgICB7CiAgICAgICAgY291dCA8PCBxdWVyeSgxLDEsbixpLGkpICtxdWVyeSgxLDEsbixpK24saStuKSA8PCAiICI7CiAgICB9Cn0K