#include <iostream>
#include <vector>
#include <map>
#include <queue>
#include <iomanip>
#include <cmath>
#define int long long // vse ti je long long
#define vi vector<int>
#define vvi vector<vi>
#define vpii vector<pair<int,int>>
#define oopt cin.tie(0);cout.tie(0);ios_base::sync_with_stdio(false);
#define forn(i,n) for(int i = 0; i<n; i++)
#define all(x) (x).begin(), (x).end()
#define ld long double
using namespace std;
ld rcalc(int r, int x){
return x/(4.0*r)*x; //da ne bi kaj overflowalo
}
signed main() {
int n; cin >> n;
vi v(n), mxr(n);
forn(i,n){
cin >> v[i] >> mxr[i];
}
forn(i,n-4){
cout << v[i+2] << "-" << mxr[i+2] << "|";
}
/*
vi stack; //indexi balonov
vector<ld> r(n,-1); //odgovori
forn(i,n){
//cout << "smo na: " << i << "\n";
//cout << "stack na zacetku izgleda: ";
//for(int nekaj : stack) cout << nekaj << " ";
//cout << "\n";
ld novi_r = mxr[i];
int pnt = stack.size()-1; //kje v stacku smo
while(pnt >= 0){
int id = stack[pnt];
ld r_mora = rcalc(r[id], v[i]-v[id]);
novi_r = min(novi_r,r_mora);
if(r_mora <= r[id]){
break; //prišli smo do večjega, več ne gre
}
pnt--;
}
r[i] = novi_r;
while(!stack.empty()){
int id = stack.back();
if(r[id] <= r[i]) stack.pop_back();
else break;
}
stack.push_back(i);
}
forn(i,n){
cout << fixed << setprecision(3) << r[i] << "\n";
}*/
}