program Collatz;
uses SysUtils,Windows, Classes ,Dialogs;
var isProgEnd:boolean=false;
var i,x:Int64;
type TTimCheck=Class(TThread)  procedure Execute;override; end;
procedure TTimCheck.Execute;
var k:Integer;
begin
 for k:=0 to 100-1 do begin
  Sleep(100); //100ms毎に処理
  writeln(i,',',x);
  end;
  isProgEnd:=True;
end;
begin
AllocConsole;
TTimCheck.Create(False);
 i:=2;
while True do begin
 x:=i;
 repeat
  if (x and 1) = 0
  then x:=x div 2 // xが偶数の時は2で割り、
  else x:=x*3 +1 ; // xが奇数の時は3倍して1を加える。
 until x=1 ;    // 新たにできた数について同じことを繰り返すと最後には1なる。
  if isProgEnd then break;
  inc(i);
end;
  readln;
end.