#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'

const int N=2e5;
const int mod=998244353;

int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	int n;
	cin>>n;
	vector<pair<int,int>> a(n);
	for(int i=0;i<n;++i){
		cin>>a[i].first>>a[i].second;
	}
	sort(a.begin(),a.end());
	vector<ll> dp(N);
	dp[n]=1;
	vector<pair<int,int>> pos;
	pos.emplace_back(n,(int)2e9);
	for(int i=n-1;~i;--i){
		while(a[i].first+a[i].second>pos.back().second) pos.pop_back();
		int last=pos.back().first;
		dp[i]=dp[last]; // actived robot i
		pos.emplace_back(i,a[i].first);
		dp[i]=(dp[i]+dp[i+1])%mod; // doing nothing 
	}
	cout<<dp[0];
	return 0;
}
