a, b, c, d = gets.split.map(&:to_i) unless d-(c-1)*b==1 puts "Constraint Condition: d-(c-1)*b==1" exit end f = ->x{x > a ? x - b : c.times.reduce(x+d){|s,_|s=f[s]}} puts (1..200).map{|i|"%3s -> %2x" % [i,f[i]]}
100 86 1919 164949
1 -> f 2 -> f 3 -> f 4 -> f 5 -> f 6 -> f 7 -> f 8 -> f 9 -> f 10 -> f 11 -> f 12 -> f 13 -> f 14 -> f 15 -> f 16 -> f 17 -> f 18 -> f 19 -> f 20 -> f 21 -> f 22 -> f 23 -> f 24 -> f 25 -> f 26 -> f 27 -> f 28 -> f 29 -> f 30 -> f 31 -> f 32 -> f 33 -> f 34 -> f 35 -> f 36 -> f 37 -> f 38 -> f 39 -> f 40 -> f 41 -> f 42 -> f 43 -> f 44 -> f 45 -> f 46 -> f 47 -> f 48 -> f 49 -> f 50 -> f 51 -> f 52 -> f 53 -> f 54 -> f 55 -> f 56 -> f 57 -> f 58 -> f 59 -> f 60 -> f 61 -> f 62 -> f 63 -> f 64 -> f 65 -> f 66 -> f 67 -> f 68 -> f 69 -> f 70 -> f 71 -> f 72 -> f 73 -> f 74 -> f 75 -> f 76 -> f 77 -> f 78 -> f 79 -> f 80 -> f 81 -> f 82 -> f 83 -> f 84 -> f 85 -> f 86 -> f 87 -> f 88 -> f 89 -> f 90 -> f 91 -> f 92 -> f 93 -> f 94 -> f 95 -> f 96 -> f 97 -> f 98 -> f 99 -> f 100 -> f 101 -> f 102 -> 10 103 -> 11 104 -> 12 105 -> 13 106 -> 14 107 -> 15 108 -> 16 109 -> 17 110 -> 18 111 -> 19 112 -> 1a 113 -> 1b 114 -> 1c 115 -> 1d 116 -> 1e 117 -> 1f 118 -> 20 119 -> 21 120 -> 22 121 -> 23 122 -> 24 123 -> 25 124 -> 26 125 -> 27 126 -> 28 127 -> 29 128 -> 2a 129 -> 2b 130 -> 2c 131 -> 2d 132 -> 2e 133 -> 2f 134 -> 30 135 -> 31 136 -> 32 137 -> 33 138 -> 34 139 -> 35 140 -> 36 141 -> 37 142 -> 38 143 -> 39 144 -> 3a 145 -> 3b 146 -> 3c 147 -> 3d 148 -> 3e 149 -> 3f 150 -> 40 151 -> 41 152 -> 42 153 -> 43 154 -> 44 155 -> 45 156 -> 46 157 -> 47 158 -> 48 159 -> 49 160 -> 4a 161 -> 4b 162 -> 4c 163 -> 4d 164 -> 4e 165 -> 4f 166 -> 50 167 -> 51 168 -> 52 169 -> 53 170 -> 54 171 -> 55 172 -> 56 173 -> 57 174 -> 58 175 -> 59 176 -> 5a 177 -> 5b 178 -> 5c 179 -> 5d 180 -> 5e 181 -> 5f 182 -> 60 183 -> 61 184 -> 62 185 -> 63 186 -> 64 187 -> 65 188 -> 66 189 -> 67 190 -> 68 191 -> 69 192 -> 6a 193 -> 6b 194 -> 6c 195 -> 6d 196 -> 6e 197 -> 6f 198 -> 70 199 -> 71 200 -> 72