#include <bits/stdc++.h>

using namespace std;

using ll = long long;
using ull = unsigned long long;

mt19937 mt(736);


class dsu
{
	vector<int> par, siz;

public:
	explicit dsu(int n) : par(n, -1), siz(n, 1)
	{}

	int get_class(int a)
	{
		return par[a] == -1 ? a : par[a] = get_class(par[a]);
	}

	bool unite(int a, int b)
	{
		a = get_class(a);
		b = get_class(b);

		if (a == b)
			return false;

		if (siz[a] < siz[b])
			swap(a, b);

		par[b] = a;
		siz[a] += siz[b];

		return true;
	}
};

// n, k = log* n, log(log(...log(n))) < 2

// rank
// sizes
// randomized sizes

// O(n * 4 + m)
// alpha(3) >= 1e7
// alpha(4) >= очень много


void solve(istream &cin = std::cin, ostream &cout = std::cout)
{
	int n, m;

	cin >> n >> m;

	dsu st(n);

	for (int i = 0; i < m; i++)
	{
		int a, b;

		cin >> a >> b;
		a--;
		b--;

		cout << (st.unite(a, b) ? "YES" : "NO") << endl;
	}
}


int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);

	cout << fixed;

#ifdef LOCAL
	auto st = clock();

	ifstream fin("../input.txt");

	do
	{
		solve(fin);

		cout << "===" << endl;

		string str;
		while (getline(fin, str) && str != string(max(1, (int) str.size()), '='));
	} while (fin);

	cout << setprecision(6) << "clock: " << double(clock() - st) / CLOCKS_PER_SEC << endl;
#else
	solve();
#endif

	return 0;
}
