#include "iostream"
#include "climits"
#include "list"
#include "queue"
#include "stack"
#include "set"
#include "functional"
#include "algorithm"
#include "string"
#include "map"
#include "unordered_map"
#include "unordered_set"
#include "iomanip"
#include "cmath"
#include "random"
#include "bitset"
#include "cstdio"
#include "numeric"
#include "cassert"
#include "functional"

using namespace std;

//constexpr long long int MOD = 1000000007;
constexpr int MOD = 1000000007;
//constexpr int MOD = 998244353;
//constexpr long long int MOD = 998244353;
constexpr double EPS = 1e-8;

//int N, M, K, H, W, L, R;
long long int N, M, K, H, W, L, R;

struct RRange {
	int l, r;
	long long int num;
	RRange(const int a, const int b, const long long int c) {
		l = a, r = b, num = c;
		return;
	}
	bool operator<(const RRange& rr)const {
		return r < rr.r;
	}
};

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);

	cin >> N >> K;
	set<RRange>sr;
	sr.insert(RRange(1, N, 0));
	for (int i = 0; i < K; i++) {
		cin >> L >> R;
		auto bag = sr.lower_bound(RRange(1, L, 0));
		if (bag->r != L) {
			int l = bag->l;
			int r = bag->r;
			long long int num = bag->num;
			sr.erase(bag);
			sr.insert(RRange(l, L, num));
			sr.insert(RRange(L + 1, r, num));
		}
		while (R) {
			auto box = sr.lower_bound(RRange(1, L, 0));
			if (box == sr.begin()) {
				int l = box->l;
				int r = box->r;
				long long int num = box->num;
				sr.erase(box);
				if (R%r) {
					sr.insert(RRange(l, l + (R%r) - 1, num + R / r + 1));
					sr.insert(RRange(l + (R%r), r, num + R / r));
				}
				else {
					num += R / r;
					sr.insert(RRange(l, r, num));
				}
				R = 0;
			}
			else {
				//cout << "Hi";
				auto bag = prev(box);
				int l = box->l;
				int r = box->r;
				long long int num = box->num;
				sr.erase(box);
				long long int dif = (bag->num) - num;
				dif *= r - l + 1;
				//cout <<"dif "<< dif << endl;
				if (dif-(r-l+1) >= R) {
					if (R%(r-l+1)) {
						sr.insert(RRange(l, l + (R%(r-l+1)) - 1, num + R / (r-l+1) + 1));
						sr.insert(RRange(l + (R%(r-l+1)), r, num + R / (r-l+1)));
					}
					else {
						num += R / (r-l+1);
						sr.insert(RRange(l, r, num));
					}
					R = 0;
				}
				else if (dif <= R) {
					int ll = bag->l;
					long long int nnum = bag->num;
					sr.erase(bag);
					sr.insert(RRange(ll, r, nnum));
					R -= dif;
				}
				else {
					int m = R % (r - l + 1);
					int ll = bag->l;
					int rr = bag->r;
					long long int nnum = bag->num;
					sr.erase(bag);
					sr.insert(RRange(ll, rr + m, nnum));
					sr.insert(RRange(rr + m + 1, r, nnum - 1));
					R = 0;
				}
			}
			//cout << "R " << R << endl;

		}
	}
	for (auto i : sr) {
		for (int j = i.l; j <= i.r; j++) {
			cout << i.num << endl;
		}
		//cout << i.l << " " << i.r << " " << i.num << endl;
	}
}
