#include<bits/stdc++.h>
using namespace std;
typedef complex<double> P;

vector<P> cal(vector<P> &v,double a,double b){
  vector<P> res;
  for(int i=0;i<v.size();i++){
    double l=v[i].real(),r=v[i].imag();
    if(l<=a&&b<=r)res.push_back(P(l,a)),res.push_back(P(b,r));
    else if(l<=a&&a<=r)res.push_back(P(l,a));
    else if(l<=b&&b<=r)res.push_back(P(b,r));
    else if(a>l||r>b)res.push_back(v[i]);
  }
  return res;
}

int main(){
  int n;
  cin>>n;
  double x,y;
  P p[100];
  for(int i=0;i<n;i++)cin>>x>>y,p[i]=P(x,y);
  for(int i=0;i<n;i++){
    vector<P> v;
    v.push_back(P(-M_PI,M_PI));
    for(int j=0;j<n;j++){
      if(i==j)continue;
      P a=P(0,-1)*(p[j]-p[i]);
      double d=arg(a);
      if(d>0)v=cal(v,d,M_PI),v=cal(v,-M_PI,d-M_PI);
      else v=cal(v,d,d+M_PI);
    }
    double ans=0;
    for(int j=0;j<(int)v.size();j++)ans+=v[j].imag()-v[j].real();
    cout<<ans/2/M_PI<<endl;
  }
  return 0;
}
/*First observation is that little numbers should be summed up to go to above 3
 * any number above 3 is better multiplied
 * also given a set of numbers to add, the best pairs to pick are least with most since we will multiply them next
 * also if the number of numbers we are going to add is N
 * then the numbers we will add are the first N numbers given that the array is sorted
 * so we just bruteforce on N
 *
 */

#include <bits/stdc++.h>
#include <complex>

using namespace std;
typedef long long int ll;

const double PI = acos(-1);
const int N = 2e6, MOD = 1e6 + 3, LOG = 21;

ll k, mvup, toAdd;
bool chn = false;
vector<ll> v;

int main() {
	//freopen("input.txt", "r", stdin);
	scanf("%lld", &k);
	while (k % 50 != 0) {
		k++;
		mvup++;
	}
	ll N = 50;
	ll base = N - 1;
	ll needed = k / N;
	printf("%lld\n", N);
	for (int i = 0; i < N; i++) {
		v.push_back(base + needed);
	}
	toAdd = mvup;
	for (int i = 0; i < N; i++) {
		if (mvup) {
			v[i] -= N;
			mvup--;
			v[i] += (toAdd - 1);
		} else {
			v[i] += toAdd;
		}
	}
	for (int i = 0; i < N; i++) {
		printf("%lld ", v[i]);
	}
	return 0;
}
