import std.stdio;
import std.algorithm;
import std.string;
import std.range;
import std.array;
import std.conv;
import std.complex;
import std.math;
import std.ascii;
import std.bigint;
import std.container;
import std.typecons;

auto readInts() {
	return array(map!(to!int)(readln().strip().split()));
}
auto readInt() {
	return readInts()[0];
}
auto readLongs() {
	return array(map!(to!long)(readln().strip().split()));
}
auto readLong() {
	return readLongs()[0];
}

const real eps = 1e-10;

void main(){
	while(true) {
		auto np = readInts();
		auto n = np[0];
		auto p = np[1];
		if(n == 0 && p == 0) {
			return;
		}
		auto stone = new int[n];
		int m = 0;
		int wan = p;
		while(true) {
			if(wan == 1 && stone[m] == p-1) {
				writeln(m);
				break;
			}
			if(wan > 0) {
				++stone[m];
				--wan;
			} else {
				wan = stone[m];
				stone[m] = 0;
			}
			m = (m+1)%n;
		}
	}
}