#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) << " ";
    }
}
