As you know, every birthday party has a cake! This time, Babaei is going to prepare the very special birthday party's cake.

Simple cake is a cylinder of some radius and height. The volume of the simple cake is equal to the volume of corresponding cylinder. Babaei has *n* simple cakes and he is going to make a special cake placing some cylinders on each other.

However, there are some additional culinary restrictions. The cakes are numbered in such a way that the cake number *i* can be placed only on the table or on some cake number *j* where *j* &lt; *i*. Moreover, in order to impress friends Babaei will put the cake *i* on top of the cake *j* only if the volume of the cake *i* is strictly greater than the volume of the cake *j*.

Babaei wants to prepare a birthday cake that has a maximum possible total volume. Help him find this value.
The first line of the input contains a single integer *n* (1 ≤ *n* ≤ 100 000) — the number of simple cakes Babaei has.

Each of the following *n* lines contains two integers *r*<sub class="lower-index">*i*</sub> and *h*<sub class="lower-index">*i*</sub> (1 ≤ *r*<sub class="lower-index">*i*</sub>, *h*<sub class="lower-index">*i*</sub> ≤ 10 000), giving the radius and height of the *i*-th cake.
In first sample, the optimal way is to choose the cake number 1.

In second sample, the way to get the maximum volume is to use cakes with indices 1, 2 and 4.
2
100 30
40 10
942477.796077000
4
1 1
9 7
1 4
10 7
3983.539484752
3
2 2
1 1
3 3
109.955742876
3
2 2
3 3
1 1
109.955742876
3
3 3
1 1
2 2
84.823001647
3
1 1
2 2
3 3
113.097335529
3
1 1
3 3
2 2
87.964594301
3
3 3
2 2
1 1
84.823001647
1
1 1
3.141592654
2
1 1
2 2
28.274333882
2
2 2
1 1
25.132741229
4
1 1
2 2
3 3
4 4
314.159265359
4
1 1
2 2
4 4
3 3
229.336263712
4
1 1
3 3
2 2
4 4
289.026524130
4
1 1
3 3
4 4
2 2
289.026524130
4
1 1
4 4
2 2
3 3
204.203522483
4
1 1
4 4
3 3
2 2
204.203522483
4
2 2
1 1
3 3
4 4
311.017672705
4
2 2
1 1
4 4
3 3
226.194671058
4
2 2
3 3
1 1
4 4
311.017672705
4
2 2
3 3
4 4
1 1
311.017672705
4
2 2
4 4
1 1
3 3
226.194671058
4
2 2
4 4
3 3
1 1
226.194671058
4
3 3
1 1
2 2
4 4
285.884931477
4
3 3
1 1
4 4
2 2
285.884931477
4
3 3
2 2
1 1
4 4
285.884931477
4
3 3
2 2
4 4
1 1
285.884931477
4
3 3
4 4
1 1
2 2
285.884931477
4
3 3
4 4
2 2
1 1
285.884931477
4
4 4
1 1
2 2
3 3
201.061929830
4
4 4
1 1
3 3
2 2
201.061929830
4
4 4
2 2
1 1
3 3
201.061929830
4
4 4
2 2
3 3
1 1
201.061929830
4
4 4
3 3
1 1
2 2
201.061929830
4
4 4
3 3
2 2
1 1
201.061929830
24
14 3600
105 64
40 441
15 3136
24 1225
42 400
84 100
12 4900
120 49
56 225
140 36
70 144
168 25
60 196
30 784
280 9
10 7056
21 1600
28 900
210 16
420 4
840 1
35 576
20 1764
2216707.776373104
15
40 9
12 100
60 4
20 36
24 25
15 64
120 1
4 900
6 400
5 576
10 144
30 16
3 1600
2 3600
8 225
45238.934211696
14
8 324
12 144
72 4
144 1
48 9
3 2304
24 36
2 5184
9 256
36 16
6 576
4 1296
18 64
16 81
65144.065264842
15
4 1764
24 49
84 4
21 64
28 36
6 784
7 576
2 7056
168 1
56 9
3 3136
8 441
14 144
42 16
12 196
88668.311054924
15
3 3200
2 7200
20 72
8 450
60 8
15 128
4 1800
5 1152
24 50
40 18
120 2
6 800
30 32
12 200
10 288
90477.868423392
17
6 900
20 81
45 16
4 2025
15 144
9 400
2 8100
3 3600
10 324
30 36
5 1296
12 225
36 25
18 100
90 4
60 9
180 1
101787.601976316
13
24 72
3 4608
18 128
72 8
48 18
144 2
4 2592
16 162
9 512
6 1152
12 288
36 32
8 648
130288.130529684
14
60 12
20 108
24 75
120 3
3 4800
5 1728
6 1200
8 675
12 300
4 2700
30 48
15 192
40 27
10 432
135716.802635088
14
105 4
14 225
6 1225
7 900
35 36
10 441
30 49
5 1764
21 100
70 9
42 25
3 4900
210 1
15 196
138544.236023319
14
6 1296
216 1
18 144
3 5184
8 729
4 2916
72 9
12 324
9 576
54 16
36 36
27 64
108 4
24 81
146574.146845895
14
4 3528
12 392
24 98
84 8
14 288
42 32
168 2
56 18
6 1568
8 882
3 6272
21 128
28 72
7 1152
177336.622109848
18
3 6400
4 3600
20 144
8 900
24 100
15 256
30 64
16 225
10 576
48 25
5 2304
80 9
60 16
240 1
6 1600
40 36
12 400
120 4
180955.736846784
13
3 6912
144 3
24 108
18 192
16 243
36 48
9 768
12 432
4 3888
48 27
72 12
8 972
6 1728
195432.195794527
16
126 4
21 144
3 7056
14 324
42 36
63 16
28 81
36 49
7 1296
84 9
252 1
4 3969
6 1764
9 784
12 441
18 196
199503.699873579
16
45 32
12 450
60 18
9 800
180 2
6 1800
4 4050
36 50
3 7200
18 200
15 288
30 72
20 162
90 8
10 648
5 2592
203575.203952632
14
22 144
24 121
264 1
6 1936
132 4
33 64
4 4356
12 484
66 16
3 7744
44 36
11 576
88 9
8 1089
218956.441584609
14
30 80
5 2880
4 4500
3 8000
10 720
12 500
8 1125
6 2000
60 20
120 5
24 125
15 320
40 45
20 180
226194.671058480
14
27 100
135 4
3 8100
45 36
90 9
30 81
6 2025
270 1
54 25
18 225
10 729
15 324
5 2916
9 900
229022.104446711
14
28 100
140 4
20 196
5 3136
56 25
4 4900
40 49
7 1600
35 64
70 16
10 784
280 1
14 400
8 1225
246300.864041456
16
32 81
96 9
12 576
3 9216
18 256
144 4
36 64
16 324
72 16
4 5184
48 36
288 1
8 1296
6 2304
24 144
9 1024
260576.261059369
14
3 9408
12 588
4 5292
24 147
42 48
7 1728
168 3
84 12
6 2352
28 108
56 27
8 1323
21 192
14 432
266004.933164772
14
20 216
12 600
5 3456
10 864
15 384
3 9600
4 5400
30 96
8 1350
6 2400
24 150
60 24
120 6
40 54
271433.605270176
14
35 72
21 200
6 2450
5 3528
70 18
30 98
10 882
15 392
105 8
210 2
42 50
3 9800
14 450
7 1800
277088.472046638
16
100 9
3 10000
60 25
15 400
75 16
10 900
50 36
150 4
25 144
6 2500
12 625
5 3600
20 225
30 100
4 5625
300 1
282743.338823100
13
72 18
24 162
36 72
4 5832
18 288
54 32
12 648
9 1152
108 8
216 2
8 1458
27 128
6 2592
293148.293691790
15
36 75
45 48
6 2700
9 1200
30 108
18 300
12 675
20 243
5 3888
4 6075
60 27
90 12
10 972
180 3
15 432
305362.805928948
13
12 676
39 64
6 2704
8 1521
52 36
312 1
13 576
104 9
4 6084
156 4
24 169
78 16
26 144
305815.195271065
9
4 2
2 2
4 1
3 1
1 1
4 3
5 1
4 3
4 1
304.734487398
5
8 3
6 3
4 2
7 3
6 3
801.106126665
2
1 1
1 1
3.141592654
3
10 10
10 10
10 10
3141.592653590
2
100 30
100 30
942477.796077000
#include <bits/stdc++.h>
#define LL long long
#define mp make_pair
#define pi 3.141592653589793
using namespace std;
int n;
set<pair<LL,LL>> s;
int main() {
	cin>>n;
	s.insert(mp(0,0));
	for(int i=1;i<=n;i++) {
		int x,y;
		cin>>x>>y;
		LL v = x*x*y;
		auto p=mp(v,0);
		auto next = s.upper_bound(p), prev = --next;
		//cout<<"prev"<<(*prev).first<<endl;
		s.insert(mp(v,(*prev).second+v));
		while(next!=s.end() && (*next).first>=v && (*next).second<(*prev).second+v) {
			s.erase(next);
			next++;
		}
		/*for(auto i:s) {
			cout<<i.first<<' '<<i.second<<endl;
		}*/
	}
	LL ans=0;
	for(auto i:s) {
		ans=max(i.second,ans);
	}
	double m=ans*3.141592653589793;
	cout<<setprecision(20)<<m<<endl;
	return 0;
}