#include <iostream>
using namespace std;
/**
* 題目邏輯分析:
* 1. 座標平移:將輸入編號 (1~10000) 減 1 變為 (0~9999),方便進行除法與取餘數運算。
* 2. 區域判定:
* - 第 1 區:0 ~ 2499 (每排 25 人)
* - 第 2 區:2500 ~ 7499 (每排 50 人)
* - 第 3 區:7500 ~ 9999 (每排 25 人)
* 3. 輸出公式:
* - 排數 = (相對區內編號 / 每排人數) + 1
* - 位數 = (相對區內編號 % 每排人數) + 1
*/
int main()
{
int seat;
if (!(cin >> seat)) return 0;
// 將 1-based 編號轉換為 0-based,避免整數除法在邊界值(如 25, 50)產生位移錯誤
seat = seat - 1;
// --- 第一區判定 ---
if (seat < 2500) {
// 第 1 區,每排 25 人
// 排數:利用整數除法無條件捨去取得 index 後再 +1
// 位數:利用取餘數 (%) 取得在該排的相對位置後再 +1
cout << 1 << " " << seat / 25 + 1 << " " << seat % 25 + 1 << endl;
}
// --- 第二區判定 ---
else if (seat < 7500) {
// 進入第 2 區前,需扣除第一區已佔用的 2500 席,取得區內相對編號
int relative_seat = seat - 2500;
// 第 2 區,每排 50 人
cout << 2 << " " << relative_seat / 50 + 1 << " " << relative_seat % 50 + 1 << endl;
}
// --- 第三區判定 ---
else {
// 進入第 3 區前,需扣除前兩區已佔用的 7500 席 (2500 + 5000)
int relative_seat = seat - 7500;
// 第 3 區,每排 25 人
cout << 3 << " " << relative_seat / 25 + 1 << " " << relative_seat % 25 + 1 << endl;
}
return 0;
}