題目描述
棟棟最近迷上了隨機算灋,而亂數是生成隨機算灋的基礎。 棟棟準備使用線性同餘法(Linear Congruential Me thod)來生成一個隨機數列,這種方法需要設定四個非負整數參數m,a,c,X[0],按照下麵的公式生成出一系列亂數X[n]×X[n+1]=(a×X[n]+c) mod m其中mod m表示前面的數除以m的餘數。 從這個式子可以看出,這個序列的下一個數總是由上一個數生成的。 用這種方法生成的序列具有隨機序列的性質,囙此這種方法被廣泛地使用,包括常用的C++和Pascal的產生亂數的庫函數使用的也是這種方法。 棟棟知道這樣產生的序列具有良好的隨機性,不過心急的他仍然想儘快知道X[n]是多少。 由於棟棟需要的亂數是0,1,…,g−1之間的,他需要將X[n]除以g取餘得到他想要的數,即X[n] mod g,你只需要告訴棟棟他想要的數X[n] mod g是多少就可以了。
輸入格式
6個用空格分割的整數m,a,c,X[0],n和g,其中a,c,X[0]是非負整數,m,n,g是正整數.
輸出格式
輸出一個數,即X[n] mod g.
樣例
11 8 7 1 5 3
2
樣例說明
計算得X[n]=X[5]=8,故(X[n] mod g)=(8 mod 3)=2
數據規模與約定
對於所有數據:n≥1,m≥1,a≥0,c≥0,X[0]≥0,g≥1,g≤108