#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <vector>
#include <algorithm>
#include <set>
#include <map>

//#include <ext/pb_ds/assoc_containe.hpp>
//#include <ext/pb_ds/tree_policy.hpp>

using namespace std;
//using namespace __gnu_pbds;

//template <class T> order_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
//find_by_orede, order_of_key

#define int long long
#define all(a) (a).begin(), (a).end()

#pragma GCC optimize ("O3")
#pragma GCC target ("avx2")


const int inf = 1e18;

void ans(int t) {
	if (t) cout << "First\n";
	else cout << "Second\n";
	exit(0);
}

vector<int> p, sz;
int get(int v) {
	if (p[v] == -1) return v;
	return p[v] = get(p[v]);
}
void merge(int a, int b) {
	a = get(a);
	b = get(b);
	if (a == b) return;
	if (sz[a] < sz[b]) swap(a, b);
	sz[a] += sz[b];
	p[b] = a;
}

vector<pair<int, int>> cur, cur2;
int n, m;

bool f(int start, int i) {
	int A = (start >> i) & 1;

	if (i == n - 1) return A;

	if (f(start, i + 1) == A) return A;
	

	for (int j = i + 1; j < n; ++j) {
		if (cur2[i].second < cur2[j].first) start ^= (1 << j);
	}
	return f(start, i + 1);
}

void solve() {
	cout << 0 << ' ' << 0;
}

signed main() {
	ios_base::sync_with_stdio(0); cin.tie(0);

#ifdef LOCAL
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif

	int t = 1; //cin >> t;
	while (t--) solve();
}