import java.math.BigDecimal; public class Main { public static BigDecimal getFibo(long num) { BigDecimal lastValue = BigDecimal.valueOf(0); BigDecimal value = BigDecimal.valueOf(1); for (int i = 2; i < num; i++) { BigDecimal tmp = value; value = value.add(lastValue); lastValue = tmp; } return value; } public static void main(String[] args) { long n = Long.valueOf(args[0]).longValue(); long m = Long.valueOf(args[1]).longValue(); System.out.println(getFibo(n).remainder(BigDecimal.valueOf(m))); // BigDecimal a = BigDecimal.valueOf(10); // System.out.println(a.remainder(BigDecimal.valueOf(3))); } }