1. 


/**
* Angewandte Mathematik, SS09, IFB 2C
* ACM Problem 493 - Rational Spiral
* Link: http://icpcres.ecs.baylor.edu/onlinejudge/index.php?option=com_onlinejudge&Itemid=8&category=6&page=show_problem&problem=434
* @author Miesel Christoph
* @author Seilbeck Robert
* @author Wolfram Andre
* @version 1.0 25.03.2009
*
* Status : Accepted
* Runtime: 0.170
*/


import java.io.*;
import java.util.*;

public class Main
{
static int ggT(int num, int denom)
{
int tmp = 0;
if(denom < num)
{
int temp = num;
num = denom;
denom = temp;
}
while(num != 0 && denom != 0)
{
tmp = num;
num = denom % num;
denom = tmp;
}
if(num == 0)
return denom;
else return num;
}

public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
int input; // bleibt unverändert

while(sc.hasNext())
{
input = sc.nextInt();
if(input <= 2)
switch(input)
{
case 0: {System.out.println("1 / 1");break;}
case 1: {System.out.println("0 / 1");break;}
case 2: {System.out.println("-1 / 1");break;}
}

int n = 2; // Absoluter Startpunkt ID >= 2:
int ID = 1; // befördert uns zum jeweiligen Startpunkt

int counter = 0; // Test auf Zahlen, die auf jeden Fall wegfallen
int howMuchNewRationalsPerID = 0;
int[] saveStatus = new int[]{2,2}; // enthält [(ID),(momentaner Index)]

// Setzen des Startpunktes:

while(saveStatus[0] < input )
{
ID++;
saveStatus[1] = ID;


// Verbindung des gewünschten Indexes mit der ID
for(int i = 1; i < ID; i++)
{
if(ggT(ID,i) != 1)
{
counter++;
}
}
howMuchNewRationalsPerID = ID*4 - 4 - 4 * counter;
saveStatus[0] += howMuchNewRationalsPerID;
//System.out.println("counter = "+counter+" im Durchgang "+ID);
counter = 0;
}

//System.out.println(saveStatus[0]+" "+saveStatus[1]+" "+howMuchNewRationalsPerID);

// Herausfinden der rationalen Zahl über Nutzung von Quadranten

/***********************************************
* Qu.4 Qu.3 *
* ----o----o *
* | Qu. *
* | 2 *
* o *
* | Qu. *
* | 1 *
* *
* *********************************************/

// Algorithmik und Ausgabe
//System.out.println((howMuchNewRationalsPerID / 2)+" "+(saveStatus[0] - input));
if(input >2)
{
if((howMuchNewRationalsPerID / 2) > (saveStatus[0] - input) )
{

int num = saveStatus[1]-1;
int denom = saveStatus[1];
for(int i = num; i > 0; i--)
{
if(ggT(i,denom) == 1)
{
if(saveStatus[0] == input)
System.out.println("-"+i+" / "+denom);
saveStatus[0]--;

}
}
for(int i = 1; i <= num; i++)
{
if(ggT(i,denom) == 1)
{
if(saveStatus[0] == input)
System.out.println(i+" / "+denom);
saveStatus[0]--;

}
}
}
else
{
int num = saveStatus[1];
int denom = saveStatus[1]-1;
int help = saveStatus[0] - howMuchNewRationalsPerID/2;
for(int i = denom; i > 0; i--)
{
if(ggT(i,num) == 1)
{
if(help == input)
System.out.println(num+" / "+i);
help--;

}
}
for(int i = 1; i <= denom; i++)
{
if(ggT(i,num) == 1)
{
if(help == input)
System.out.println("-"+num+" / "+i);
help--;

}
}
}
}
}
}
}