class TRandom{
private:
	int m_seed;
	int m_Range;
public:
	void SetSeed(int seed);
	void SetMax(int max);
	int Next();
};

void TRandom::SetSeed(int seed){
	m_seed = seed;
}

void TRandom::SetMax(int max){
	m_Range=max;
}

int TRandom::Next(){
	//pseudo-random generator
	//Changeing the variables below may effect the random generator so be careful.
	int m = 647;
	int c = 1;
	int a = 16807;
	//Generator a random number
	m_seed = (m_seed*a+c) % m;
	//Return
	return m_seed % m_Range;
}

//EXAMPLE USING THE CLASS
/*
int main(int argc, char **anvg, char**envp){
	class TRandom MyRand;
	int i = 0;
	//This will make sure random numbers are different each time.
	MyRand.SetSeed(-time(0));
	//The rang of number you want to generate.
	MyRand.SetMax(45);

	//Example
	while(i < 20){
		//Print random number in range of 0-45
		cout << MyRand.Next() << endl;
		i++;
	}
	//Just to keep the console open.
	system("pause");
	return 1;
}
*/