1.

/**
* FWP, Ausgewählte Probleme aus dem ACM Programming Contest, WS09
* Problem: 10920 - Spiral Tap
* Link: http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=21&page=show_problem&problem=1861
*
* @author Dennis Wilfert
* @version 1.0, 12/01/2009
*
* Status : Accepted
* Runtime: 0.292
*/
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringTokenizer;

class Main {

public static void main(String[] args) throws IOException {

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer = new PrintWriter(new BufferedOutputStream(System.out));

StringTokenizer token = new StringTokenizer(reader.readLine());

int sz = Integer.parseInt(token.nextToken());
int p = Integer.parseInt(token.nextToken());
int size, tmp, line, column;

while (sz != 0) {

// Feld in dem der Wert p liegt
size = (int) Math.ceil(Math.sqrt(p));
if (size % 2 == 0) {
size++;
}

// Element in der unteren rechten Ecke des Felds size
tmp = size * size - (size - 1);

// Schauen ob p in der rechten Spalte liegt
if (p >= tmp) {
line = (p - tmp) + 1;
column = size;
} else {
// Element in der unteren linken Ecke
tmp -= (size - 1);

// Schauen ob p in der unteren Zeile liegt
if (p >= tmp) {
line = 1;
column = (p - tmp) + 1;
} else {
// Element in der oberen linken Ecke
tmp -= (size - 1);

// Schauen ob p in der linken Spalte liegt
if (p >= tmp) {
line = size - (p - tmp);
column = 1;
} else {
// Lag p nicht in den vorherigen Bereichen muss es in der oberen Zeile liegen
line = size;
column = (size - 1) - (p - (tmp - (size - 2)));

}
}
}

// Zeilen und Spalten dazurechnen, die das gesuchte Feld größer ist
// als das Feld in dem p liegt
sz = (sz - size) / 2;
writer.println("Line = " + (line + sz) + ", column = " + (column + sz) + ".");

token = new StringTokenizer(reader.readLine());

sz = Integer.parseInt(token.nextToken());
p = Integer.parseInt(token.nextToken());

}
writer.flush();
}
}