#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int n, c, m;
  cin >> n >> c >> m;
  vector<int> cnt(n + 1);
  for (int i = 0; i < m; i++) {
    int l, r;
    cin >> l >> r;
    cnt[l - 1]++;
    cnt[r]--;
  }
  for (int i = 0; i < n - 1; i++) {
    cnt[i + 1] += cnt[i];
  }
  vector<vector<double>> f(m + 1, vector<double>(c));
  f[0][1] = 1.0;
  for (int i = 0; i < m; i++) {
    for (int a = 0; a < c; a++) {
      f[i + 1][a] += f[i][a] * 0.5; // 不涂色
      for (int b = 0; b < c; b++) {
        f[i + 1][a * b % c] += f[i][a] * 0.5 / c; // 涂了颜色
      }
    }
  }
  double ans = 0.0;
  for (int i = 0; i < n; i++) {
    int cc = cnt[i];
    for (int j = 0; j < c; j++) {
      ans += f[cc][j] * j;
    }
  }
  cout << fixed << setprecision(3) << ans << '\n';
  cerr << "Time: " << double(clock()) / CLOCKS_PER_SEC << '\n';
  return 0;
}
