#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<stack>
#include<queue>
#include<vector>
#include<map>
#include<ctime>
#include<set>
#include<string>
using namespace std;
double eps=1e-9,pi=acos(-1.0);
struct Point
{
    double x,y;
    Point(){}
    Point(double _x,double _y){x=_x;y=_y;}
    double operator*(const Point &b){return x*b.y-y*b.x;}
    Point operator-(const Point &b){return Point(x-b.x,y-b.y);}
    Point operator+(const Point &b){return Point(x+b.x,y+b.y);}
    Point operator*(const double s){return Point(x*s,y*s);}
    double len(){return x*x+y*y;}
}p[30];
int n,Q;
double R;
Point turn(Point a,Point o,double al)
{
    double cs=cos(al),si=sin(al);
    Point ret;
    a=a-o;
    ret.x=a.x*cs-a.y*si;
    ret.y=a.x*si+a.y*cs;
    return o+ret;
}
double dis(Point a,Point b)
{
    return (a-b).len();
}
int main()
{
    while(scanf("%d%lf%d",&n,&R,&Q))
    {
        if(n==0&&Q==0)break;
        int o;
        R=R*R;
        for(int i=0;i<n;i++)
        {
            scanf("%lf%lf",&p[i].x,&p[i].y);
            if(fabs(p[i].len()-R)<eps)o=i;
        }
        //for(int i=1;i<n;i++)printf("%f\n",turn(p[i],p[0],0.0).len());
        for(int jj=1;jj<=Q;jj++)
        {
            double l=0,r=pi,m;
            int tim=90;
            while(tim--)
            {
                m=(l+r)*.5;
                int big=0;
                for(int i=0;i<n;i++)
                if(i!=o)
                {
                    if(turn(p[i],p[o],m).len()>R+eps)
                    {
                        big=1;
                        break;
                    }
                }
                //printf("m=%f big=%d\n",m,big);
                if(big)r=m;
                else l=m;
            }
            //printf("m=%f\n",m);
            Point tp=p[o];
            for(int i=0;i<n;i++)
            if(i!=o)p[i]=turn(p[i],p[o],m);
            //for(int i=0;i<n;i++)printf("%f %f %f\n",p[i].x,p[i].y,p[i].len());
            int o2=-1;
            double ma;
            for(int i=0;i<n;i++)
            if(i!=o&&fabs(p[i].len()-R)<1e-7)
            {
                //printf("i=%d\n",i);
                if(o2==-1||dis(p[i],tp)>ma)
                {
                    ma=dis(p[i],tp);
                    o2=i;
                }
            }
            printf("%.8f %.8f\n",p[o2].x,p[o2].y);
            o=o2;
        }
    }
}