import std.algorithm;
import std.range;
import std.stdio;
import std.math;
import std.array;
import std.string;
import std.conv;

/// 数列の読み込み
auto readNums(T = int)() {
	return readln().chomp.split.map!(to!T).array;
}

/// 数の読み込み
auto readNum(T = int)() {
	return readNums!T.front;
}

/// 指定行数読み込み
auto readRows(size_t rows) {
	return generate(() => readln().chomp).take(rows).array;
}

void main() {
	const nums = readNums!ulong();
	immutable a = nums[0];
	immutable b = nums[1];
	immutable x = nums[2];
	immutable n = (b / x) - (a / x);
	
	writefln("%s", a % x == 0 ? n + 1 : n);
}